在GridView中输入数据而不移开焦点就执行某种事件的话GridView是不会把单元格中的数据更新到DataTable中去的,我试过使用PostEditor()、CloseEditor()、UpdateCurrentRow()等方法都不行。虽然我也不太清楚这些方法是干什么的。。
使用PostEditor()还会把原来在DataTable中的值也会清空,而且无法通过SetRowCellValue()赋值。
搞了半天,只能出此下策:
int index = gridview1.GetDataSourceRowIndex(e.RowHandle);
gridview1.Rows[index]["ApplyMoney"] = ConvertApplyMoney;
gridview1.Rows[index]["UNApplyMoney"] = UNApplyMoney;
就是获取GridVIew当前选中行的RowHandle,然后通过gridview1.GetDataSourceRowIndex(e.RowHandle);获取数据表中的Index,然后修改DataTable中的数据,哎~
RowHandle可用gridview1.FocusedRowHandle属性获得。