Технология Microsoft ADO.NET



           

Объект DataView. Фильтрация и сортировка данных - часть 2


Запускаем приложение. Выделяем записи поля CustomerID со значениями "ANTON" и "BLAUS" и удаляем их - они немедленно появляются во втором элементе DataGrid (рис. 9.5).

Удаленные записи оказываются во второй таблице

увеличить изображение
Рис. 9.5.  Удаленные записи оказываются во второй таблице

Изменим фильтр - в поле свойства RowStateFilter нажимаем на кнопку "Current Rows" (Текущие записи) и оставляем галочки на пунктах "New" и "Current Modified" (рис. 9.6):

Установка нового фильтра

Рис. 9.6.  Установка нового фильтра

Запускаем приложение. Теперь во вторую таблицу будут помещаться текущие записи, в которые были внесены изменения - в первой записи в поле City было добавлено "123", а также новые записи - прокручиваем список до конца и вводим данные (рис. 9.7).

Применение фильтра по новым и измененным записям

увеличить изображение
Рис. 9.7.  Применение фильтра по новым и измененным записям

Каждый объект DataSet поддерживает две версии - исходную, полученную при загрузке из базы данных, и текущую, в которую были внесены изменения. Данные, выведенные на форму в элемент управления DataGrid, можно изменять, при этом фиксируется статус записей объекта DataRow с помощью свойства RowState. Свойство RowStateFilter осуществляет фильтрацию по этому свойству, причем кнопке "Original" соответствуют исходные данные, а кнопке "Current" - текущие. Значения этого свойства приведены в таблице 9.1.

Таблица 9.1. Значения свойства RowStateFilter объекта DataView

Свойство Описание
Unchanged Записи без изменений
New Новые записи
Deleted Удаленные записи
Current Modified Измененные записи с их текущими значениями
Original Modified Измененные записи с их первоначальными значениями

Как мы уже видели, для одного объекта DataView в пределах одной версии объекта DataSet (исходной или текущей) возможно объединение фильтров - например, отображение новых и удаленных записей.

Свойство RowFilter предназначено для вывода записей, содержащих определенное значение заданного поля. Установим свойству RowStateFilter значение по умолчанию - CurrentRows, - а затем в свойстве RowFilter введем фильтрацию (рис. 9.8):




Содержание  Назад  Вперед