当前位置: 代码迷 >> ASP.NET >> 用户控件发生 “Invalid postback or callback argument”异常,
  详细解决方案

用户控件发生 “Invalid postback or callback argument”异常,

热度:6448   发布时间:2013-02-26 00:00:00.0
用户控件发生 “Invalid postback or callback argument”错误,急!
我把DataList做成了用户控件,DataList模板里有一个按钮Delete
为该用户控件定义了一个事件DeleteStore。
在DataList的ItemCommand事件处理函数中,判断是不是按钮Delete被按下,若是,触发DeleteStore事件

结果,在调用页面,点击Delete按钮产生错误“invalid   postback   or   callback   argument.   Event   validation   is   enabled   using   <pages   enableEventValidation= "true "/>   in   configuration   or   <%@   Page   EnableEventValidation= "true "   %>   in   a   page   。。。

我把调用页面的enableEventValidation设置成false,没有错误了,但是单击Delete按钮,没有触发DeleteStore事件,单步进去,发现ItemCommand处理函数也没有执行。

请问这个问题如何解决


------解决方案--------------------------------------------------------
这是个简单的问题,但涉及复杂的可能性。

引发的原因很简单:
ASP.NET认为这是一个不合法的PostBack,因为引发PostBack的那个控件(例如你按了的按钮)的ID在当前控件树上找不到。

然而为什么控件书上找不到,这可能是个很复杂的问题:
可能和你在什么时候绑定有关,还可能与控件自动命名有关。我假设你的问题是遇到自动命名的问题,所以建议你检查一遍你的整个Page,把里面所有的控件都手动加上ID,不要让ASP.NET帮你自动命名。
------解决方案--------------------------------------------------------
try:把绑定DataList前加上if(!this.IsPostBack){ 绑定list}
  相关解决方案