Как определить, добавлен ли UltragridRow (новый) или только что изменен? - PullRequest
0 голосов
/ 29 января 2019

У меня есть УльтраСетка Infragistics на винформ.Как я могу узнать, добавлена ​​или изменена строка?Свойство DataChanged просто скажет мне, изменился ли Data, а не был ли он добавлен (поэтому я могу поместить данные строки в статистику SQL-вставки) или был ли он изменен (поэтому я могу поместить его в SQL-оператор UPDATE.)

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

Заранее спасибо.

1 Ответ

0 голосов
/ 31 января 2019

UltraGrid не отслеживает изменение или добавление строки.Посмотрите на ответ Майка Зальцмана в этой ветке на их форуме.

Это его ответ:

Сетка не отслеживает это.Если вы отредактируете строку в сетке и перейдете к другой строке, все изменения в предыдущей строке будут зафиксированы в источнике данных.Сетка не имеет дело с базой данных напрямую, она имеет дело только с ее локальным источником данных.Поэтому, если вы хотите отслеживать изменения в источнике данных, которые необходимо записать в базу данных, то об этом должен заботиться источник данных.Классы DataSet и DataTable имеют встроенную поддержку для отслеживания ожидающих изменений.Единственное, что вас может беспокоить в связи с сеткой, это то, что текущий ActiveRow в сетке может иметь ожидающие изменения, которые должны быть записаны в его DataSource.Для этого вы можете использовать DataChanged.Сетка будет автоматически фиксировать изменения, когда теряет фокус, но если вам нужно вручную принудительно зафиксировать изменения, вы можете использовать метод grid.UpdateData или метод Update в любой отдельной строке.

...