Вчера потратил н -ое кол-во времени чтоб разобраться(к слову в мсдн очень криво этот вопрос описан) а в инете инфа была только на одном форуме, да и то лишь кроха... Допустим пишем мы контрол какой то и у нас возникло желание воспользоваться джаваскриптом - мы конечно можем прямо хардкодом написать что то такое(из мсдн):
code if (!cs.isclientscriptblockregistered(cstype, csname2)) { stringbuilder cstext2 = new stringbuilder(); cstext2.append("< script type=text/javascript> function doclick() {"); cstext2.append("form1.message.value='text from client script.'} < /"); cstext2.append("script>"); cs.registerclientscriptblock(cstype, csname2, cstext2.tostring(), false); }
но имхо это только мусор в коде....
можно сделать гораздо красивее:
1. Добавляем джаваскрипт файл в ресурсы сборки
2. В свойствах добавленного джаваскрипт файла устанавливаем build action:embedded resource
3. В assemblyinfo.cs добавляем такой атрибут [assembly: webresource("controls.resources.script_include.js", "application/x-javascript")] - поясняю: controls - имя сборки, resources - папка в которой лежит мой файл, script_include.js - сам файл.
4. в контроле добавляем такой код:
code protected override void onprerender(eventargs e) { base.onprerender(e); page.clientscript.registerclientscriptresource(typeof(mycontrol), "controls.resources.script_include.js"); }
Все теперь в на вашей странице вы можете вызывать любые функции из файла script_include.js
Надеюсь данная заметка поможет вам разобраться с этим простым но мало документированным вопросом.
Постоянные ссылки
При копировании ссылка на TeaM RSN обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.