您好,
我有一个通用的用户控件,它将在页面中使用两次。有一个javascript与它相关,也需要添加。如何将此添加到页面,因为javascript将被多次添加。
答案 0 :(得分:6)
您正在寻找ClientScriptManager它有一组RegisterClientScriptxxx方法,用于将字符串/包含文件/资源等注册为客户端脚本块。这些方法中的每一个都接受一个键和一个类型的参数,每个键/类型的脚本只包含一次。
在用户控件的OnLoad或OnInit中,您需要进行如下调用
Page.ClientScriptManager.RegisterClientScriptInclude(typeof(MyUserControl), "myscript", @"/path/to/my/script.js");
无论页面中有多少用户控件实例,脚本都只包含一次。
BTW,现在不推荐使用Page.RegisterClientScriptxxx方法,首选ClientScriptManager。
答案 1 :(得分:1)
我假设这是ASP.NET。如果是这样,在您的代码中,您调用RegisterClientScriptBlock并传递一个键。但在调用之前,您调用IsClientScriptRegistered来检查该密钥是否已经注册。这样,只有添加的第一个用户控件才会注册其javascript,因此只会将其添加到页面一次。
答案 2 :(得分:0)
我建议您将javascript源与控件分开,然后在加载控件两次之前加载一次javascript。