在我的 gridItemTemplate
中,我有更新面板和复选框,
<ItemTemplate>
<asp:UpdatePanel runat="server" ID="upChkOption">
<ContentTemplate>
<asp:CheckBox runat="server" ID="chkOption" AutoPostBack="true"
OnCheckedChanged="chkOption_CheckChanged">
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
第一次运行没有错误,但是在postback
之后,我得到了这个错误
Cannot unregister UpdatePanel with ID 'upChkOption' since it was not registered with
the ScriptManager. This might occur if the UpdatePanel was removed from the control
tree and later added again, which is not supported. Parameter name: updatePanel
如何解决?
最佳答案
将UpdatePanel_Unload
添加到UpdatePanel
的OnUnload
事件中:
<asp:UpdatePanel ID="upChkOption" runat="server" OnUnload="UpdatePanel_Unload">
将其添加到代码后面
protected void UpdatePanel_Unload(object sender, EventArgs e)
{
MethodInfo methodInfo = typeof(ScriptManager).GetMethods(BindingFlags.NonPublic | BindingFlags.Instance)
.Where(i => i.Name.Equals("System.Web.UI.IScriptManagerInternal.RegisterUpdatePanel")).First();
methodInfo.Invoke(ScriptManager.GetCurrent(Page),
new object[] { sender as UpdatePanel });
}
Adding/removing UpdatePanels dynamicaly from a page
cannot-unregister-updatepanel-since-it-was-not-registered-with-the-scriptmanager-error
关于c# - Gridview ItemTemplate 中的 updatePanel 在回发时存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21594761/