将修改的数据行添加到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);
}
本文介绍了一种解决在编辑数据行时,由于最后一个输入单元格未失去焦点导致的行处于编辑状态问题的方法。通过检查行的状态并在必要时结束编辑状态,确保数据正确更新。
3421

被折叠的 条评论
为什么被折叠?



