Совет. Можно иметь 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

Hosted by uCoz