Вчера потратил н -ое кол-во времени чтоб разобраться(к слову в мсдн очень криво этот вопрос описан) а в инете инфа была только на одном форуме, да и то лишь кроха... Допустим пишем мы контрол какой то и у нас возникло желание воспользоваться джаваскриптом - мы конечно можем прямо хардкодом написать что то такое(из мсдн):

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 обязательна!

URI

Html (ЖЖ)

BB-код (Для форумов)

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.