我正在为 ASP.NET GridView 中的每一行注册一个回发事件。
protected void gvLRR_RowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
if (cs == null)
cs = Page.ClientScript;
e.Row.Attributes.Add("onclick",
cs.GetPostBackEventReference((GridView)sender, "Select$" + e.Row.RowIndex.ToString()));
}
}
用户单击行时调用的事件是 GridView gvLRR 的 SelectedIndexChanged。
问题: 只要我将页面指令 EnableEventValidation 设置为 false,所有这些都可以正常工作,但是如果我不将其设置为 false,那么当用户单击 GridView 中的一行时,页面就会爆炸。但是,我认为这有点 hack,因为当单击 GridView 行时,我不应该仅仅为了让回发事件工作而禁用事件验证。那么有没有更好的方法来做到这一点?我可以以某种方式注册回发事件以进行行点击并以某种方式设法仍然启用事件验证吗?
预先感谢您的帮助。