C#开发学习笔记:如何解决GridView无法获取最后编辑的单元格的数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
}

猜你喜欢

转载自blog.csdn.net/JustWantToFly/article/details/84848308