与中继器的火灾事件到中继器

时间:2011-10-03 19:19:04

标签: c# asp.net

Good Afternoon People,我正在使用中继器,在中继器内还有另一个中继器,每个项目都有一个按钮。当我点击其中一个按钮时,asp.net会返回以下错误:

  

无效的回发或回调参数。事件验证已启用   在配置中使用或<%@   Page EnableEventValidation =“true”%>在一个页面中。为了安全   目的,此功能验证回发或回调的参数   事件源自最初呈现的服务器控件   他们。如果数据有效且预期,请使用   ClientScriptManager.RegisterForEventValidation方法   注册回发或回调数据以进行验证。

但是当我在页面上添加Page指令EnableEventValidation =“false”时,没有错误但是没有触发我的事件。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您是否在每次回发时绑定数据?问题可能源于这样一个事实,即在回发后发送事件的Repeater不再存在,并且每个Postback都会创建一个新的Repeater。 这就是事件验证失败的原因,您无法将一个动态创建的控件中的事件触发到另一个控件。它必须是相同的控制。

简单的解决方案是仅在第一次加载页面时绑定数据并保持启用ViewState。

所以,在Page_Load:

if(!IsPostBack)
  // Bind Repeater Data here