Cannot unregister updatepanel since it was not registered with the scriptmanager error
ASP.NET 5 Comments »This error is a pesky one. You will most likely encounter it when you’re trying to dynamically load an UpdatePanel within an itemTemplate in a datagrid, or some similar control with dynamically created items. In my case: in a datagrid, and specifically within an item template in that grid.
Here is the solution that has worked for me:
1) Hook into the Unload event of the updatepanel like so (in ASPX or ASCX file):
<asp:UpdatePanel runat="server" ID="updatePanel" OnUnload="updatePanel_Unload"> <ContentTemplate> </ContentTemplate> </asp:UpdatePanel>
2) Now in your code behind, use this implementation of Unload.
(*You will need a reference to System.Linq and System.Reflection if you don’t already have one)
protected void updatePanel_Unload(object sender, EventArgs e) { /* Cast sender as an updatePanel, and use reflection to invoke * * the page's scriptmanger registerUpdatePanel() method * * */ÂÂ
UpdatePanel aUpdatePanel = sender as UpdatePanel; MethodInfo m =( from methods in typeof(ScriptManager).GetMethods( BindingFlags.NonPublic | BindingFlags.Instance ) where methods.Name.Equals("System.Web.UI.IScriptManagerInternal.RegisterUpdatePanel") select methods).First<MethodInfo>(); m.Invoke(ScriptManager.GetCurrent(aUpdatePanel.Page), new object[] { aUpdatePanel }); }
Executing the reflection code to invoke the scriptManager’s registerUpdatePanel() method should fix your problem… and you’re off and running again!

Recent Comments