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

本文介绍了一种解决在编辑数据行时,由于最后一个输入单元格未失去焦点导致的行处于编辑状态问题的方法。通过检查行的状态并在必要时结束编辑状态,确保数据正确更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将修改的数据行添加到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);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值