Настройка редактирования ячеек

Оценить
(0 голоса)

Мощь DataGridView состоит в его способности быстро привязаться к данным и отобразить их в табличном формате, а также в обеспечении хорошо настраиваемых возможностей редакти­рования. В качестве небольшого примера возможностей редактирования ячеек рассмотрим таблицу Employee. Когда вы автоматически сгенерировали элементы управления формы для редактирования таблицы Employee, то получили элемент DateTimePicker для данных дат и времени этой таблицы. В элементе DataGridView редактирование ячеек выполняется как про­стое текстовое редактирование: каждая ячейка содержит текст, и вы можете редактировать текст и сохранять его в базе данных. Но вы можете предоставить и более специализированные возможности редактирования. Вы можете использовать различные готовые элементы управле­ния (такие как DataGridViewButtonColumn, DataGridViewComboBoxColumn, а также про­чие, наследующие от DataGridViewColumn; см. главу 15) для отображения данных в столбцах сетки.

Например, вы можете использовать класс DataGridViewComboBoxColumn для редактиро­вания столбца Gender при помощи выпадающего списка. Для этого вам нужно сначала из­менить тип столбца по умолчанию. Выберите сетку, откройте глиф смарт-тега и выберите действие Edit Columns. В диалоговом окне Edit Columns найдите столбец данных с полом служащего и измените тип столбца на dataGridViewComboBoxColumn (рис. 18.38). Описание: image499

После изменения типа столбца вам нужно указать, как сетка должна получать возможные значения для отображения в раскрывающемся списке; сетка достаточно интеллектуальна для того, чтобы использовать уже имеющиеся в таблице значения пола. Вы можете жестко закодировать возможные значения в столбце (см. свойство Items на рис. 18.38), либо вы можете приспособить отдельный запрос (нечто вроде select distinct (Gender) from Employees)— чтобы он выдал вам список возможных значений. Поскольку конструирова­ние дополнительного запроса или источника данных несложно и не приводит к ненадежным вариантам с жестким кодированием, то именно такой подход мы и будем здесь изучать. Чтобы создать запрос для заполнения столбца поля со списком, вы можете зайти в окно Data Sources, выбрать действие Add New Data Source и выполнить все те же шаги, которые вы выполняли ранее для добавления источника данных Employee. На этот раз выберите только столбец Gender.

После создания источника данных щелкните его правой кнопкой мыши и выберите пункт Edit DataSet with Designer. Для модификации нашего запроса мы будем использовать визу­альный конструктор DataSet Designer. В визуальном конструкторе (рис. 18.39) вы видите запрос Fill и TableAdapter, используемый для заполнения набора данных. Если вы щелкне­те запрос (т. е. щелкнете последнюю строку таблицы в окне конструктора), то увидите окно Properties, в котором можно напрямую редактировать SQL запроса. Внеся сюда соответст­вующий код вроде select distinct, вы сможете получить допустимые значения пола для включения их в сетку.

Результаты наших трудов показаны на рис. 18.40. Если вам нужно реализовать такой эле­мент управления для редактирования в ячейке, который пока не существует, то вы можете создать свой собственный — для этого нужно наследовать от базового элемента управления DataGridViewColumn. Этой сетке для показа служащих очень пригодился бы элемент управления DateTimePicker для данных даты и времени (таких как дата рождения и дата найма).

Примечание

Если вы заглянете в документацию MSDN, то там имеется конкретный пример созда­ния элемента управления DataGridViewDateTimePickerColumn и подключения его к сетке. Ищите по фразе "How to: Host Controls in Windows Forms DataGridView Cells".Описание: image500

Привязка других элементов управления
Привязка данных к элементам управления Web
Выбор элемента управления данными
Использование GridView
Обновление данных при помощи GridView

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.