我正在爲ASP.NET GridView中的每一行註冊一個回發事件。在GridView行上註冊SelectedIndexChanged事件
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,那麼頁面炸燬當用戶點擊上的一排網格視圖。不過,我認爲這有點破解,因爲我不應該禁用事件驗證,只是爲了在點擊GridView行時使回發事件工作。那麼有沒有更好的方式去做這件事?我能以某種方式爲行點擊註冊回發事件,並以某種方式管理啓用事件驗證功能嗎?
非常感謝您的幫助。
您發佈的代碼是OnRowDatabound。你不需要一個SelectedIndexChanged事件嗎? – Thousand
他使用OnRowDatabound事件動態分配對GridView事件SelectedIndexChanged的調用。他本可以說明這個理由。 –