I am having a big problem solving this error:"Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation."
I have a gridView which will be loaded with data when the page loads for the first time. In the same page i have one search user control outside of GridView which have dropdown and a submit button. User select from dropdown and click submit button to pass dropdown selected index. The page reloads and bind the Grid again with new information related with search.
My GridView also have one user control inside gridview ItemTemplate which have labels, textboxex, checkboxes created dynamically. Such that when each row of GridView is clicked, it opens up with data related to that row and dynamically binds controls with information.
Now, When i do search GridView filters out the information and show data correctly, which is fine till here, but once i click on each row to see its inner part it display the above error.
When no search is performed, everything works fine.
I am guessing when Search is performed, the grid is rebind again to new datasource on page load and hence changes all controls IDs. Since postback is performed and server is not getting correct control indentification, the server is throwing that error.
Any help would be apprciated alot.
protected void Page_Load(object sender, EventArgs e)
DataTable mDT = Utility.BuildDataTable("SELECT * FROM TABLE");
GridView1.DataSource = mDT;
// Search results
int ddltypeID = ddl.SelectedValue;
String strSql = "";
String strAnd = "";
if (ddltypeID != -1)
strSql = strSql + strAnd + "Measure_Type = " + UCTypeID;
DataTable dt = msadapter.GetData();
DataRow dr = dt.Select(strSql);
GridView1.DataSource = dr;