如何判断是添加(新)还是修改UltragridRow?

时间:2019-01-29 15:10:14

标签: vb.net winforms infragistics ultragrid

我在winform上有一个Infragistics Ultragrid。如何判断是添加行还是修改行? DataChanged属性只会告诉我数据是否已更改,而不是是否已添加(因此我可以将行数据放入SQL插入语句中)或是否已修改(因此可以将其放入UPDATE sql语句中。)< / p>

For Each row As UltraGridRow In GroupMetadataGrid.Rows
   If row.DataChanged Then
       Debug.WriteLine("Saving Changed Row")
   End If
Next

谢谢。

1 个答案:

答案 0 :(得分:0)

UltraGrid不跟踪行是否已更改或已添加。在他们论坛的this主题中查看Mike Saltzman的回答。

这是他的答案:

网格不会对此进行跟踪。如果您在网格中编辑一行并移至另一行,则前一行中的所有更改都将提交给数据源。 网格不直接处理数据库,只处理其本地数据源。因此,如果您希望跟踪数据源中需要写入数据库的更改,那么数据源就需要解决这一问题。 DataSet和DataTable类具有对跟踪未决更改的内置支持。 您可能需要与网格有关的唯一事情是,网格中的当前ActiveRow可能有待处理的更改,需要将其写入DataSource。为此,您可以使用DataChanged。网格失去焦点时将自动提交更改,但是如果您需要手动强制执行更改,则可以在任何单独的行上使用grid.UpdateData方法或Update方法。