sar*_*ake 16 javascript asp.net user-controls
如何以编程方式将Javascript文件添加到用户控件?
我希望用户控件是一个完整的包 - 也就是说我不想在它使用的页面上添加与用户控件相关的javascript,当我可以在控件本身内完成时.
由于用户控件中没有Page对象,你会怎么做?
sar*_*ake 26
在control.ascx.cs文件的Page_Load方法中:
LiteralControl jsResource = new LiteralControl();
jsResource.Text = "<script type=\"text/javascript\" src=\"js/mini-template-control.js\"></script>";
Page.Header.Controls.Add(jsResource);
HtmlLink stylesLink = new HtmlLink();
stylesLink.Attributes["rel"] = "stylesheet";
stylesLink.Attributes["type"] = "text/css";
stylesLink.Href = "css/mini-template-control.css";
Page.Header.Controls.Add(stylesLink);
Run Code Online (Sandbox Code Playgroud)
这会将css和Javascript加载到主页面的head标签中,只需确保头部有runat ="server".
您可以使用ClientScriptManager注册客户端脚本.可以通过Control.Page属性访问页面.
Page.ClientScript.RegisterClientScriptInclude (
typeof ( MyControl ), "includeme.js", "js/includeme.js" );
Run Code Online (Sandbox Code Playgroud)
编辑:对不起,对于一个完整的"完整包",它可以使用脚本作为嵌入式资源,并通过WebResource.axd处理程序获取动态URL.如果这不被认为是完全完整的,那么我想它可以放在App_LocalResources中,但它永远不会只是一个文件,除非代码和脚本是内联的.
与gnomixa的响应相同,只是更清洁一点:
HtmlGenericControl js = new HtmlGenericControl("script");
js.Attributes["type"] = "text/javascript";
js.Attributes["src"] = "jscript/formfunctions.js";
Page.Header.Controls.Add(js);
Run Code Online (Sandbox Code Playgroud)
来自http://www.aspdotnetfaq.com/Faq/How-to-Programmatically-add-JavaScript-File-to-Asp-Net-page.aspx
| 归档时间: |
|
| 查看次数: |
26561 次 |
| 最近记录: |