LeoDreaming 发表于 2019-12-23 13:11:35

Multirow编辑中行的数据变化,用DataSet.GetChanges取不到

本帖最后由 LeoDreaming 于 2019-12-23 15:15 编辑

Multirow的A列为显示列B列为隐藏列,当点击执行按钮时候,循环数据条数,通过A列值进行计算后的值,赋给B列。
对于新追加的行的A列(追加后,焦点不移开直接点执行按钮),输入值后,直接点击执行按钮的情况下,DataSet.GetChanges取不到计算后的值。

点击执行后数据如下:

               DataSet
                A    B
                1    1
                2    2
新追加行3    999999

               DataSet.GetChanges                A    B                1    1                2    2新追加行3   
赋值是用Multirow.Row(i).Cells(j).Value = 999999 来完成的,监视Dataset是赋值之后的,
但是DataSet.GetChanges取到的不是想要的数据,不是最新的。

这个问题有解决方法吗


Richard.Ma 发表于 2019-12-24 11:15:21

这个问题DataGridView也是一样的,直接UI改值changes不为null,通过setValue changes为null

我今天会再想想有没有好办法

LeoDreaming 发表于 2019-12-24 12:57:15

本帖最后由 LeoDreaming 于 2019-12-24 13:00 编辑

>>         A    B
                1    1
                2    2
新追加行3    999999

但是,B列的1和2 也是SetValue方式赋值的,就可以。第三行的“999999”所在控件是当前焦点Cell,就取不到值。
很头疼。


Richard.Ma 发表于 2019-12-24 17:21:53

this.社員BindingSource.EndEdit();

改完cell的值之后,调用一下绑定的数据源结束编辑的方法

这样就可以 GetChanges 取到最新的改动了

LeoDreaming 发表于 2019-12-25 12:45:41

好的,谢谢。
用 BindingSource.EndEdit()确实可以了

Richard.Ma 发表于 2019-12-25 15:48:04

嗯,不客气
页: [1]
查看完整版本: Multirow编辑中行的数据变化,用DataSet.GetChanges取不到