我正在构建自定义Web控件,我正在使用js和css Js和Css文件嵌入在控件的dll中 问题是当我将这个控件添加到页面多次再次添加资源(js和css文件)时,有没有办法检查这些文件是否已经添加?
请注意,此控件可以添加到任何其他容器控件(如div):
divId.Controls.Add(myCustomControl);
所以我需要一种方法来搜索页面
感谢名单。
UPDATE1: 我用它来将js文件添加到容器中:
var plh = new PlaceHolder();
var js = new HtmlGenericControl("script");
jsID = "stacks";
js.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(MyControlClass), "MyControlCSFileName.ScriptFolder.stacks.js"));
js.Attributes.Add("type", "text/javascript");
js.EnableViewState = false;
plh.Controls.Add(js);
plh.RenderControl(writer);
UPDATE2:
有时我在服务器上渲染控件并使用Ajax返回它的html结果。
答案 0 :(得分:0)
使用Page.ClientScript.RegisterClientScriptInclude注册您的JS
实施例: this.Page.ClientScript.RegisterClientScriptInclude(“key”,Page.ClientScript.GetWebResourceUrl(this.GetType(),“yourscript.js”));
答案 1 :(得分:0)
使用ClientScriptManager.RegisterClientScriptBlock
参考:ClientScriptManager.RegisterClientScriptBlock
客户端脚本由其密钥及其类型唯一标识。 具有相同密钥和类型的脚本被视为重复。只有一个 具有给定类型和密钥对的脚本可以在页面中注册。 尝试注册已注册的脚本不会 创建脚本的副本。
您不需要检查重复项,因为asp.net只会添加一个实例。
但是,如果要保存检查时间,它会提供检查脚本是否已注册的功能:IsClientScriptBlockRegistered
。