版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JustWantToFly/article/details/84848308
将修改的数据行添加到dt数据表时,由于修改时最后输入内容的cell没有失去焦点,所以行依然属于编辑状态,这种情况下,行的RowState为Detached(代表行不属于任何集合,不一定都是这个状态),所以GetDataRow()或者GridView.DataSource取行数据是获取不到最后有焦点的cell的值,通过以下方法解决
foreach (DataRow dr in drs)
{
//将修改的数据行添加到dt数据表时,由于修改时最后输入内容的cell没有失去焦点
//所以行依然属于编辑状态,这种情况下,行的RowState为Detached(代表行不属于任何集合)
//所以GetDataRow()取行数据是获取不到最后有焦点的cell的值,通过以下方法解决
if ( dr.RowState == DataRowState.Detached)
{
if (gv_temp.EditingValue != null)
dr[gv_temp.FocusedColumn.FieldName] = gv_temp.EditingValue;
}
else
{
if (gv_temp.EditingValue != null)
dr[gv_temp.FocusedColumn.FieldName] = gv_temp.EditingValue;
dr.EndEdit();//结束该行的编辑状态
}
dt.LoadDataRow(dr.ItemArray, true);
}