【问题标题】:"Invalid postback or callback argument" with Databound controls带有数据绑定控件的“无效回发或回调参数”
【发布时间】:2010-09-22 13:31:13
【问题描述】:

当我的数据绑定控件上发生事件(添加/编辑/删除)时,我收到以下错误。

回发或回调参数无效。 使用 in 启用事件验证 配置或 在一个 页。为了安全起见,这 功能验证参数 回发或回调事件起源 从服务器控制 最初渲染它们。如果数据 是有效的和预期的,使用 ClientScriptManager.RegisterForEventValidation 方法来注册 回发或回调数据 验证。

我正在使用自定义 DataList 控件,但是 GridView、DetailsView、FormView 和 Repeater 控件(可能还有其他数据绑定控件)也会出现此问题。

我能找到的答案告诉我关闭配置文件或页面中的验证,但这听起来不像是最好的解决方案。我做错了什么?

【问题讨论】:

    标签: .net asp.net gridview


    【解决方案1】:

    问题是在页面 Load 事件中为控件加载数据并调用 DataBind() 方法。但是,如果在引发事件之前调用 DataBind() 方法,则会在控件命名发生更改时生成上述异常。

    解决办法是把这个改成if(!IsPostback) DataBind(),然后在事件处理程序的最后调用DataBind()方法。无论如何,您大部分时间都需要在处理程序结束时调用它以影响更改。

    如果这不是您的问题,并且您正在使用 JavaScript 修改控件客户端,请查看 this article

    这是一篇自我回答的帖子,因为我在博客上收到了很多关于这个问题的回复,我想我可能会进一步分享。

    【讨论】:

      【解决方案2】:

      谢谢你。我遇到了这个问题,你的自我回答帮助我解决了这个问题。

      在每个事件处理程序结束时调用 DataBind() 方法的另一种方法是在页面 PreRender 事件中执行一次。

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题,我花了几个小时才解决我的问题。罗伯特的回答部分帮助了我,尽管数据绑定了我的转发器,无论是否回发,问题仍然存在。经过大量研究后,我发现了一篇建议设置 UseSubmitBehavior="false"、宾果游戏的帖子,它解决了这个问题。希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 2014-11-18
          • 2011-09-26
          • 1970-01-01
          相关资源
          最近更新 更多