您现在的位置是: 首页 > 微软技术 > Asp.Net 组件编程

『Asp.Net 组件』Asp.Net 服务器组件 内嵌JS:让自己的控件动起来
ShuXiaolong 2016-12-15 697人围观
3 条评论
简介 代码: 嵌入资源: 嵌入CSS代码: 运行截图: 相关技术点:将一个JS资源 内嵌到 程序集中,需要设置 文件VS属性(生成操作:签入的资源);程序集项目 AssemblyInfo.cs 中需要加入如下代码(其中 WebResource 包括 资源名称,资源类型):获取 程序

     代码:

     

    嵌入资源:

     

    嵌入CSS代码:

     

    运行截图:

     

    相关技术点:

    • 将一个JS资源 内嵌到 程序集中,需要设置 文件VS属性(生成操作:签入的资源);
    • 程序集项目 AssemblyInfo.cs 中需要加入如下代码(其中 WebResource 包括 资源名称,资源类型):
    • 获取 程序集中的 内嵌文件的 Url代码是:Page.ClientScript.GetWebResourceUrl(GetType(), @"资源名称");
    • JS文件设置到 HTML的 链接到头部:

    protected override void OnPreRender(EventArgs e)

    {

         base.OnPreRender(e);

     

         //输出 JS HTML文件中

         if (!IsDesignMode)

         {

               #region  注册程序集中的 Js文件 到页面

    string jsUrl = Page.ClientScript.GetWebResourceUrl(GetType(),

                        "DemoWebControl.Resources.DemoJs01.js");

     

               ////方法01:注册指定 Js-Url 到页面 (可以注册 非程序集 的Js文件)

               //Page.ClientScript.RegisterClientScriptInclude(

               //"JsKeyFor_DemoWebControl.Resources.DemoJs01", jsUrl);

     

               ////方法02:注册程序集中的 资源文件名称对应的文件 到页面 (和 方法01 一摸一样)

               //Page.ClientScript.RegisterClientScriptResource(GetType(),

               //"DemoWebControl.Resources.DemoJs01.js");

     

               //方法03:(方法01 方法02 注册的 Js 都不在 Head中,为了标准一点 可以用本方法)

               HtmlScriptLink linkJs = new HtmlScriptLink();

               linkJs.Attributes.Add("src", jsUrl);

               Page.Header.Controls.Add(linkJs);

     

               //其实,理论上讲:Js文件在页面的哪个地方 都无所谓,关键是在 调用代码之前。

               // HtmlScriptLink 是 模仿 微软 HtmlLink 所写,不具备相同Js文件去重的功能:

               //也就是说可能造成资源浪费,等待后期优化调整。

              #endregion

     

              #region  注册一段调用 Js文件 的 Js代码 到页面

     

              string initScript = "<script language=\"javascript\" type=\"text/javascript\">" +

                                        "$(function () { var temp" + ClientID +

                                        " = new DemoJsCtrl(\"" + ClientID + "\"); });</script>";

              Page.ClientScript.RegisterStartupScript(GetType(), "DemoJsCtrl_" + ClientID, initScript);

     

              #endregion

         }

    }

     

     相关系列文章链接:

     

     

第一时间获取智能手机行业新鲜资讯和商业动态,可以访问站长的微博「InkFx」, 如果需要站长陪聊也可以在微信里添加好友,搜索「Shu_Xiaolong」, 还可以通过加入QQ群:「C#实验室」,和网友一起交流技术、共同进步。

文章评论

图文推荐

InkFx博客 有部分文章来源于互联网,版权归属于原作者。本站所有转载文章言论不代表本站观点。
如是侵犯了原作者的权利,请发邮件联系站长(514286339@qq.com),站长收到后立即删除。