Изменение данных в серверном веб-элементе управления GridView

Visual Studio 2010

Обновлен: Ноябрь 2007

Элемент управления GridView обладает встроенными функциями, обеспечивающими изменение или удаление записей без написания программного кода. При необходимости можно настроить функции изменения или удаления элемента управления GridView с помощью событий и шаблонов.

Функции изменения или удаления элемента управления GridView можно включить следующим образом:

Для элемента управления GridView поддерживается пользовательский интерфейс, позволяющий изменять содержимое отдельных строк. В столбце сетки, для которой допускается изменение, обычно содержится кнопка или ссылка, позволяющая перейти в режим изменения столбца. (По умолчанию кнопке присваивается подпись «Edit».)

При сохранении изменений элемент управления GridView передает сведения об изменениях и первичном ключе элементу управления источником данных (определяется свойством DataSourceID), который вызывает соответствующую операцию обновления. Например, элемент управления SqlDataSource выполняет инструкцию Update языка SQL, используя измененные данные в качестве параметров. Элемент управления ObjectDataSource вызывает собственный метод обновления, передавая изменения данных в качестве параметров вызова.

Элемент управления GridView передает значения источнику данных для выполнения операции обновления или удаления в трех коллекциях словаря: Keys , NewValues и OldValues. Для обращения к словарям можно использовать аргументы, передаваемые в события обновления или удаления элемента управления GridView.

В словаре Keys содержатся имена и значения полей, которые однозначно идентифицируют обновляемую или удаляемую запись, а также всегда содержатся исходные значения ключевых полей. Чтобы указать, какие поля следует поместить в словарь Keys, укажите в качестве значения свойства DataKeyNames разделенный запятыми список имен полей, которые представляют собой первичный ключ данных. Коллекция DataKeys автоматически заполняется значениями, которые связаны с полями, определенными для свойства DataKeyNames.

c4245bb4.alert_note(ru-ru,VS.100).gifПримечание.

Исходные значения первичных ключей полей, указанные в свойстве DataKeyNames, хранятся в состоянии просмотра. Если значения первичного ключа содержат конфиденциальные сведения, то необходимо шифровать содержимое состояния просмотра, присвоив свойству ViewStateEncryptionMode страницы значение Always.

В словаре NewValues содержатся текущие значения, полученные от элементов управления вводом изменяемой строки. В словаре OldValues содержатся все исходные значения полей, за исключением ключевых полей, которые включены в словарь Keys.

Значения, содержащиеся в словарях Keys, NewValues и OldValues, используются элементом управления источником данных в качестве параметров команд обновления или удаления. Сведения о создании параметров элемента управления источником данных на основе словарей, созданных для связанных значений, см. в разделе Создание параметров для полей, привязанных к данным, элементом управления источником данных.

Чтобы проверить или настроить содержимое любого из этих словарей перед передачей их в источник данных, реализуйте обработку событий RowUpdating или RowDeleting. По завершении обновления или удаления элементом управления GridView создается событие RowUpdated или RowDeleted. Эти события позволяют выполнять определенные действия, например проверку целостности, после выполнения запроса.

После завершения обновления или удаления и вызова всех событий выполняется повторная привязка элемента управления GridView к элементу управления источником данных для отображения обновленных данных.

c4245bb4.alert_note(ru-ru,VS.100).gifПримечание.

Исходные значения обновляемых полей элемента управления GridView сохраняются в свойстве ViewState. Если свойство ViewState страницы ASP.NET, на которой содержится обновляемый элемент управления GridView, отключено, при проверке на оптимистичный параллелизм нельзя использовать исходные значения обновляемых и первичных ключевых полей, которые были извлечены в результате первой привязки элемента управления GridView к источнику данных. При обратной передаче страницы для выполнения операции обновления или удаления в качестве исходных значений для обновляемых и первичных ключевых полей элемента управления GridView извлекаются текущие значения из базы данных, поскольку в свойстве ViewState не сохранены значения. После этого выполняется операция обновления или удаления с использованием этих исходных значений. Если с момента первого заполнения элемента управления GridView исходные значения изменены, операция обновления или удаления выполняется успешно, однако в результате проверки на оптимистичный параллелизм не возникает ожидаемая ошибка.

Можно настроить элементы пользовательского интерфейса редактирования, например определить тип элементов управления, отображаемых в режиме редактирования для каждого поля данных. Благодаря автоматической двусторонней привязке данных пользовательские элементы управления обеспечивают извлечение изменяемых значений из хранилища данных и загрузку в него измененных значений.

c4245bb4.alert_note(ru-ru,VS.100).gifПримечание.

Если изменяется оператор обновления источника данных или порядок столбцов в элементе управления GridView, убедитесь, что значения, передаваемые элементом управления GridView в источник данных, соответствуют конфигурации источника.

Показ: