www.shuxiaolong.com 网站已经升级, 最新网址 请关注 www.ink-fx.com
Asp.Net服务器控件

『Asp.Net 组件』Asp.Net 服务器组件 内嵌JS:让自己的控件动起来

2013-10-01  (1/1456) ShuXiaolong

 

 代码:

 

嵌入资源:

 

嵌入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

     }

}

 

 相关系列文章链接:

 

 

评论回复
共有:1 条评论信息
ShuXiaolong [58.55.*.211]  2013-10-01 22:52:09 评论道:
return DesignMode || HttpContext.Current == null && Page == null;是一个错误代码,应该是:return DesignMode || HttpContext.Current == null || Page == null;

发表评论

点击刷新