It’s quite often I have this error because of the content has been changed during postback or because of the control id. I’ve read most of the article suggested to disable the event validation by putting this on the page which is loosen up the security of that particular page. I found the other method without need to change the EnableEventValidation to false. What i found is that you can reregister your control on the render method
VB.NET
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter) Register(Me) MyBase.Render(writer) End Sub Private Sub Register(ByVal ctrl As Control) For Each c As Control In ctrl.Controls Register(c) Next Page.ClientScript.RegisterForEventValidation(ctrl.UniqueID) End Sub
C#
protected override void Render(HtmlTextWriter writer) { Register(this);base.Render(writer); } private void Register(Control ctrl) { foreach (Control c in ctrl.Controls) Register(c); Page.ClientScript.RegisterForEventValidation(ctrl.UniqueID); }
Leave a Reply