我有一個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
。我不知所措...