“Invalid postback or callback argument” in ASP.NET 的解决办法

来源:互联网 发布:软件设计师2016上半年 编辑:程序博客网 时间:2024/05/16 15:45

最近遇到了这样一个错误,Invalidpostback or callback argument. Event validation is enabled using <pagesenableEventValidation="true"/> in configuration or <%@ PageEnableEventValidation="true" %> in a page. For security purposes, thisfeature verifies that arguments to postback or callback events originate fromthe server control that originally rendered them. If the data is valid andexpected, use the ClientScriptManager.RegisterForEventValidationmethod in order to register the postback or callback data for validation

解决方法:

1)把整个页面的属性设置为False,默认为True.

<%@ PageEnableEventValidation="false"%>

2)单独把出错的控件overloaded Render()事件重写,

比如子控件.Visible = False,那么不会被Render,因此不会被 registered for eventvalidation.

如果别的地方引用到这个Event,那么就会报错。


 

protected overridevoid Render(HtmlTextWriter writer)
{
    foreach (DataGridItem row in DataGrid1.Items)
   ClientScript.RegisterForEventValidation(row.UniqueID.ToString() + ":_ctl0");
    base.Render(writer);
}