为了确保RowUpdating事件在编辑单元格后被激发,要在Page_Load中来触发这个事件。编辑了TextBox后,通过按回车键或者单击另一单元格来使页面做回发处理,下面的这段代码就是用于确保任何数据的改变都会被更新。
为了验证而注册回发和回调数据if (this.GridView1.SelectedIndex > -1)
...{
this.GridView1.UpdateRow(this.GridView1.SelectedIndex, false);
}
在RowDataBound中创建的自定义事件必须要在页中注册。 通过重写Render方法来调用 ClientScriptManager.RegisterForEventValidation。 通过GridViewRow.UniqueID返回行的唯一ID,按纽的唯一ID通过在行的唯一ID后附加“$ct100”而生成。
这将防止任何“回发或回调参数无效”的错误。protected override void Render(HtmlTextWriter writer)
...{
foreach (GridViewRow r in GridView1.Rows)
...{
if (r.RowType == DataControlRowType.DataRow)
...{
for (int columnIndex = _firstEditCellIndex; columnIndex < r.Cells.Count; columnIndex++)
...{
Page.ClientScript.RegisterForEventValidation(r.UniqueID + "$ctl00", columnIndex.ToString());
}
}
}
![]()
base.Render(writer);
}
