VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 880|回复: 5

DataGrid修改其中一行數據時如果不跳離這行數據其RowState為UnChanged.瞧瞧...

[复制链接]

2

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-16 14:00:01 | 显示全部楼层 |阅读模式
DataGrid修改其中一行數據時如果不跳離這行數據其RowState為UnChanged,也就是說如果不把當前修改行的Posation移動另一行時用GetChange()來Update綁定在這個DataGrid的DataSet中的Table時會根本取不到這行被修改的數據,這個問題該怎么解決,難道要告訴用戶你修改了DataGrid中的一行數據時一定要把輸入焦點移至另一行嗎?如果這個DataGrid關聯的Table中只有一行數據,那又怎么辦?


回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-22 00:00:01 | 显示全部楼层
DataRow.SetModified
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-22 01:00:01 | 显示全部楼层
应该是DataBinding.EndEdit()
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-22 10:00:01 | 显示全部楼层
我也有这个问题,无奈。
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-22 10:15:01 | 显示全部楼层
有一种解决办法:
把绑定的DataTable中每一行单独执行EndEdit();

dgv.EndEdit();
foreach (DataRow drow in dgvDT.Rows) drow.EndEdit();
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-22 10:30:01 | 显示全部楼层
我遇到过这个问题,你应该使用BindingSource这样才能够解决的,然后bingdingSource.EndEdit();后就会把你的修改提交到相应的DataSet中的,这时在对DataSet做相应的操作就可以了的!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表