此问题开始我也纠结了很久,按照错误提示是把
EnableEventValidation属性设为true就OK ,但是设置之后发现,事件都不触发了,所以无济于事。
在PageLoad事件中绑定数据
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = depart.ReturnAll();
Repeater1.DataBind();
}
这是Repeater事件的代码,点击删除按钮后实现删除功能
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = depart.ReturnAll();
Repeater1.DataBind();
}
这是Repeater事件的代码,点击删除按钮后实现删除功能
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
if (depart.DelDepartByID(e.CommandArgument.ToString()))
{
UIHelper.ShowMsgBox("删除成功!", Page, this.GetType());
}
}
}
当点击删除的时候就出现这个问题:
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
if (depart.DelDepartByID(e.CommandArgument.ToString()))
{
UIHelper.ShowMsgBox("删除成功!", Page, this.GetType());
}
}
}
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = depart.ReturnAll();
Repeater1.DataBind();
}
}
后来发现当点击删除之后,页面刷新又触发PageLoad事件,数据重新绑定,与删除请求发生冲突导致验证。后来在页面加载添加IsPostBack解决问题。
希望对大家有所帮助