代码之家  ›  专栏  ›  技术社区  ›  Robert Wagner

带有数据绑定控件的“无效回发或回调参数”

  •  13
  • Robert Wagner  · 技术社区  · 16 年前

    回发或回调参数无效。 在中使用启用事件验证 配置或<%@页 EnableEventValidation=“true”%>在一个 页为安全起见,此 回发或回调事件开始 从服务器控件 ClientScriptManager.RegisterForEventValidation 方法以注册 的回发或回调数据

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

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

    3 回复  |  直到 16 年前
        1
  •  24
  •   Robert Wagner    16 年前

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

    解决方案是将其更改为if(!IsPostback)DataBind(),然后在事件处理程序末尾调用DataBind()方法。无论如何,大多数情况下,您都需要在处理程序末尾调用它来影响更改。

    this article .

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

        2
  •  7
  •   Daniel Liuzzi Jon Skeet    15 年前

    谢谢你。我一直在面对这个问题,你的自我回答帮助我解决了这个问题。

    在每个事件处理程序末尾调用DataBind()方法的另一种方法是在page PreRender事件中执行一次。

        3
  •  3
  •   Taimur Khan    11 年前

    我也遇到了同样的问题,我花了几个小时来解决我的问题。罗伯特回答部分帮助了我,尽管数据绑定了我的中继器,不管回不回帖子,问题仍然存在。经过大量的研究,我发现了一个建议设置的帖子 使用submitbehavior=“false” ,宾果,它解决了这个问题。希望这会有所帮助。