Good Afternoon People,我正在使用中继器,在中继器内还有另一个中继器,每个项目都有一个按钮。当我点击其中一个按钮时,asp.net会返回以下错误:
无效的回发或回调参数。事件验证已启用 在配置中使用或<%@ Page EnableEventValidation =“true”%>在一个页面中。为了安全 目的,此功能验证回发或回调的参数 事件源自最初呈现的服务器控件 他们。如果数据有效且预期,请使用 ClientScriptManager.RegisterForEventValidation方法 注册回发或回调数据以进行验证。
但是当我在页面上添加Page指令EnableEventValidation =“false”时,没有错误但是没有触发我的事件。
如何解决这个问题?
答案 0 :(得分:1)
您是否在每次回发时绑定数据?问题可能源于这样一个事实,即在回发后发送事件的Repeater不再存在,并且每个Postback都会创建一个新的Repeater。 这就是事件验证失败的原因,您无法将一个动态创建的控件中的事件触发到另一个控件。它必须是相同的控制。
简单的解决方案是仅在第一次加载页面时绑定数据并保持启用ViewState。
所以,在Page_Load:
if(!IsPostBack)
// Bind Repeater Data here