我创建了一个ASP.Net服务器控件,可以将其称为“WebGrid”。 WebGrid控件具有一个嵌入式JavaScript资源,该资源向任何承载它的页面的ScriptManager注册。在动态添加的服务器控件上注册javascript资源
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
ClientScriptManager scriptManager = this.Page.ClientScript;
scriptManager.RegisterClientScriptResource(typeof(WebGrid), "Atl.Core.Resources.Scripts.WebGrid.js");
}
我也确信,在WebGrid.js文件被更改的文件的生成操作属性嵌入的资源为“嵌入的资源”,并增加资源,以项目的AssemblyInfo.cs这样:
[assembly: WebResource("Atl.Core.Resources.Scripts.WebGrid.js", "text/js")]
现在,当控制在JavaScript资源使用ScriptManager注册的aspx页面的标记声明,一切工作正常。但是,如果我通过一个按钮动态地将控件添加到页面的ControlCollection中,则单击javascript不会被注册,并且控件抱怨找不到这样和那样的javascript函数。请注意这两个按钮,分别位于不同的UpdatePanel中的WebGrid ...
编辑:看起来这个问题是因为我使用的ClientScript与ScriptManager的看到(Differences between ScriptManager and ClientScript when used to execute JS?)。那么,我该如何使用Page的ScriptManager注册WebGrid的脚本?