我有一个ScriptControl
(需要ScriptManager
)与JavaScript来处理客户端交互和ICallbackEventHandler
来回通信。一切都可以完美地与页面上的一个或多个控件实例配合使用。我把这个控件放在GridView
里面进行排序,它仍然可以工作。不过,我放置GridView
在UpdatePanel
现在每当我排序,我得到以下错误的每个实例:UpdatePanel内的ScriptControl
Sys.InvalidOperationException: Two components with the same id 'GridView_ctl02_MyControl' can't be added to the application.
有人能指出我在如何解决这个正确的方向?我假设ScriptManager
在尝试$create()
之前没有处理旧的Sys.UI.Control
对象,并且具有相同的ID。我认为UpdatePanel
/ScriptManager
组合会自动处理可能会被替换的对象?
编辑:本页面似乎支持我的想法:http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerdispose.aspx
使用RegisterDispose方法 寄存器的配置是一个UpdatePanel 控制内部控制 脚本。在异步 回发期间,UpdatePanel控件可以更新,删除或创建 。 当更新或删除 面板时,将调用任何 为 UpdatePanel中的控件注册 的脚本。在典型的 页面开发场景中,您不需要调用 方法。
只是为了仔细检查自己所下的alert("dispose " + this.element.id)
我的JavaScript dispose()
函数内部。每个实例都提醒dispose GridView_ctl02_MyControl
,但之后出现两个组件不能具有相同名称的错误GridView_ctl02_MyControl
。我不知所措...