Как использовать Javascript файл из ресурсов

Вчера потратил н -ое кол-во времени чтоб разобраться(к слову в мсдн очень криво этот вопрос описан) а в инете инфа была только на одном форуме, да и то лишь кроха... Допустим пишем мы контрол какой то и у нас возникло желание воспользоваться джаваскриптом - мы конечно можем прямо хардкодом написать что то такое(из мсдн):
<!--c1-->
CODE
<!--ec1-->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);
    }
<!--c2-->
<!--ec2-->
но имхо это только мусор в коде....
можно сделать гораздо красивее:
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. в контроле добавляем такой код:
<!--c1-->
CODE
<!--ec1--> protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            Page.ClientScript.RegisterClientScriptResource(typeof(MyControl), "Controls.Resources.Script_include.js");
          
        }<!--c2-->
<!--ec2-->
Все теперь в на вашей странице вы можете вызывать любые функции из файла Script_include.js
Надеюсь данная заметка поможет вам разобраться с этим простым но мало документированным вопросом.
Kigorw Copyright© 2006

Источник: Kigorw's Blog 



Опубликовал admin
21 Янв, Суббота 2006г.



Программирование для чайников.