Совет. Можно иметь AutoGenerateColumns, установленный в true, и определять столбцы в разделе <Colunms>. В этом случае явно определенные столбцы добавляются перед генерируемыми автоматически. Эта техника использовалась в предыдущей главе для создания GridView с автоматически сгенерированными столбцами и вручную определенными столбцами с элементами управления редактированием. Однако для максимальной гибкости вы обычно будете явно определять все столбцы.
Каждый столбец может относиться к одному из нескольких разных типов, описанными в табл. 10.1. Порядок дескрипторов столбцов задает порядок столбцов в GridView слева направо.
Таблица 10.1. Типы столбцов
Столбец | Описание |
---|---|
BoundField |
Этот столбец отображает текст поля источника данных. |
ButtonField |
Этот столбец отображает кнопку для каждого значения в списке. |
CheckBoxField |
Этот столбец отображает флажок для каждого элемента списка.
Используется автоматически для полей, хранящих значения true/false (в SQL Server это
поля, использующие тип данных bit). |
CommandField |
Этот столбец предоставляет выбор кнопок редактирования. |
HyperLinkField |
Этот столбец отображает свое содержимое (поле из источника данных или
статический текст) как гиперссылку. |
ImageField | Этот столбец отображает графические данные из двоичного поля (в
предположении, что они могут быть успешно интерпретированы как
поддерживаемый графический формат). |
TemplateField | Этот столбец позволяет специфицировать множественные поля,
настраиваемые элементы управления и произвольный HTML, используя шаблон.
Представляет наибольшую степень управляемости, но также требует
максимума работы. |
Наиболее базовый тип столбца — BoundField, который привязывает к одному полю в объекте данных. Например, вот определение столбца с одиночной привязкой, отображающей поле EmployeeID:
<asp:BoundField DataField="EmployeeID" HeaderText="ID" />
Это предоставляет одно усовершенствование по сравнению со столбцом, сгенерированным автоматически, а именно — текст заголовка, который в данном случае изменен с EmployeeID на ID.
Когда вы создаете GridView, свойство AutoGenerateColumns изначально установлено равным true. Когда вы привязываете его к элементу управления источником данных, оно меняется на false, и Visual Studio добавляет дескриптор <BoundField> к каждому полю, которое находит в источнике данных. Этот подход имеет ряд преимуществ:
предыдущая следующая страница оглавление
420