如何以编程方式将Javascript文件添加到用户控件?
我希望用户控件是一个完整的包 - 也就是说我不想在它使用的页面上添加与用户控件相关的javascript,当我可以在控件本身内完成时.
由于用户控件中没有Page对象,你会怎么做?
在control.ascx.cs文件的Page_Load方法中:
LiteralControl jsResource = new LiteralControl(); jsResource.Text = ""; 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);
这会将css和Javascript加载到主页面的head标签中,只需确保头部有runat ="server".
您可以使用ClientScriptManager注册客户端脚本.可以通过Control.Page属性访问页面.
Page.ClientScript.RegisterClientScriptInclude ( typeof ( MyControl ), "includeme.js", "js/includeme.js" );
编辑:对不起,对于一个完整的"完整包",它可以使用脚本作为嵌入式资源,并通过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);
来自http://www.aspdotnetfaq.com/Faq/How-to-Programmatically-add-JavaScript-File-to-Asp-Net-page.aspx