Общие сведения о серверном веб-элементе управления DataList

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

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

В этом разделе рассматриваются следующие темы:

  • Базовые сведения.

  • Примеры кода.

  • Ссылка на класс.

Базовые сведения

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

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

Элемент управления DataList отображает элементы в списке с использованием элементов HTML-таблицы. Для точного управления кодом HTML, используемым для отображения списка, применяется серверный веб-элемент управления Repeater вместо элемента управления DataList.

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

Вид элементов данных задается шаблонами с использованием элементов управления и текста HTML. Например, серверный веб-элемент управления Label можно использовать для отображения поля из источника данных.

В следующих разделах описываются основные возможности элемента управления DataList.

Привязка данных к элементу управления

Серверный веб-элемент управления DataList должен быть привязан к источнику данных. Наиболее распространенным источником данных является элемент управления источником данных, например элемент управления SqlDataSource или ObjectDataSource. Кроме того, можно привязать элемент управления DataList к любому классу, реализующему интерфейс IEnumerable, который включает наборы данных ADO.NET (класс DataSet), объекты чтения данных (классы SqlDataReader или OleDbDataReader) или большинство коллекций. При выполнении привязки данных источник данных указывается для всего элемента управления DataList в целом. При добавлении к данному элементу управления других элементов управления, например при добавлении меток или текстовых полей в элемент «Список», можно привязывать свойства дочерних элементов управления к полям в текущем элементе данных.

Определение шаблонов для элементов DataList

В элементе управления DataList можно задавать структуру данных при помощи шаблонов.

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

Общие сведения об использовании шаблонов см. в разделе Шаблоны серверных веб-элементов управления ASP.NET.

В следующей таблице описаны шаблоны, которые поддерживаются элементом управления DataList:

Свойство шаблона

Описание

ItemTemplate

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

AlternatingItemTemplate

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

SelectedItemTemplate

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

EditItemTemplate

Задает макет элемента в режиме редактирования. Обычно этот шаблон содержит элементы управления для редактирования, например TextBox.

HeaderTemplate и FooterTemplate.

Содержит текст и элементы управления отображающиеся в начале и конце списка соответственно.

SeparatorTemplate

Содержит элементы, которые отображаются между элементами данных. Типичным примером может служить строка (задается с помощью элемента HR).

Стили

Для задания внешнего вида элементов в шаблоне можно установить стиль шаблона. Например, можно указать следующее:

  • Элементы заполняются черным текстом на белом фоне.

  • Чередующиеся элементы заполняются черным текстом на светло-сером фоне.

  • Выделенные элементы заполняются полужирным черным текстом на желтом фоне.

  • Редактируемые элементы заполняются черным текстом на светло-синем фоне.

Всякий шаблон поддерживает свой собственный объект стиля, свойства которого можно установить как во время разработки, так и во время выполнения. Существуют следующие стили, с которыми можно работать:

Дополнительные сведения см. в разделе Серверные веб-элементы управления ASP.NET и стили CSS.

Макет элемента

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

Параметр макета

Описание

Потоковый макет

В потоковом макете элементы-списки воспроизводятся линейно, как в текстовых документах.

Табличный макет

В табличном макете элементы отображаются в виде таблицы HTML. Этот макет предоставляет дополнительные параметры для указания вида элементов, поскольку позволяет устанавливать свойства ячейки таблицы, такие как линии сетки. Дополнительные сведения см. в разделе Практическое руководство. Указание формата потока или таблицы в серверных веб-элементах управления DataList.

Вертикальный и горизонтальный макеты

По умолчанию элементы в элементе управления DataList отображаются в одном вертикальном столбце. Однако можно задать для элемента управления и несколько столбцов. Если задано несколько столбцов, то далее можно указать вертикальное расположение элементов (как колонки газет) либо горизонтальное (как дни в календаре). Дополнительные сведения см. в разделе Практическое руководство. Указание расположения по вертикали или по горизонтали в серверных веб-элементах управления DataList.

Число столбцов

Независимо от того, горизонтально или вертикально располагаются элементы в элементе управления DataList, можно указать количество столбцов в этом списке. Это позволяет контролировать отображаемую ширину страницы, обычно чтобы избежать появления горизонтальной полосы прокрутки.

События

Элемент управления DataList поддерживает определенные события. Одно из них, событие ItemCreated, дает возможность настраивать процесс создания элементов во время выполнения. Событие ItemDataBound также предоставляет возможность настройки элемента управления DataList, но только после того, как данные становятся доступными для проверки. Например, при использовании элемента управления DataList для отображения списка необходимых дел можно показывать просроченные элементы красным цветом, выполненные — черным, а остальные — зеленым. Любое из вышеописанных событий может быть использовано для переопределения форматирования, определенного в шаблоне.

Остальные события вызываются в ответ на нажатия кнопок в элементах-списках. Они разработаны, чтобы упростить реагирование на наиболее часто используемые функциональные возможности элемента управления DataList. Поддерживаются четыре события этого типа:

Чтобы вызвать эти события, следует добавить элементы управления Button, LinkButton или ImageButton в шаблоны элемента управления DataList и установить для свойства CommandName кнопки ключевое слово, например edit, delete или updatecancel. Когда пользователь нажимает кнопку в элементе, событие передается в контейнер кнопки — элемент управления DataList. Конкретное событие, вызываемое нажатием на кнопку, зависит от значения свойства CommandName этой кнопки. Например, если для свойства CommandName кнопки задано значение edit, то при нажатии этой кнопки вызывается событие EditCommand. Если свойство CommandName имеет значение delete, то при нажатии кнопки вызывается событие DeleteCommand, и т. д.

Элемент управления DataList также поддерживает событие ItemCommand, возникающее при нажатии кнопки, не имеющей заранее заданной команды, такой как edit или delete. Это событие можно использовать для настройки функциональности путем установки для свойства CommandName кнопки требуемого значения и последующей проверки его в обработчике событий ItemCommand. Например, можно использовать этот подход при выделении элемента, как описано в разделе Практическое руководство. Выбор пользователями элементов в серверном веб-элементе управления DataList.

Дополнительные сведения см. в разделе Модель событий серверного веб-элемента управления ASP.NET.

Редактирование и выделение элементов

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

Прежде всего, необходимо создать шаблон EditItemTemplate, предоставляющий макет и элементы управления для редактирования. Необходимо также предоставить пользователю способ сообщить программе, что он хочет редактировать элемент. Обычно это делается путем последовательного включения кнопки в шаблон элемента (и в свойство AlternatingItemTemplate, если оно используется) и задания для свойства CommandName этой кнопки значения edit. После нажатия на кнопку элемент управления DataList автоматически вызывает событие EditCommand. В коде для обработчика этого события следует перевести элемент в режим редактирования, отображающий шаблон EditItemTemplate.

EditItemTemplate обычно включает кнопки, которые дают пользователям возможность сохранять внесенные изменения или отменять их (например кнопки Обновить и Отмена). Эти кнопки действуют аналогично кнопке Правка — они посылают предварительно определенное командное сообщение (update или cancel) в элемент управления DataList, который вызывает событие UpdateCommand или CancelCommand, на которое можно отвечать соответствующим образом. Дополнительные сведения см. в разделе Практическое руководство. Предоставление пользователям разрешения на изменение элементов в серверном веб-элементе управления DataList.

Аналогично происходит выделение элемента с помощью события SelectedIndexChanged. Следует добавить кнопку ItemTemplate и задать для ее свойства CommandName значение select. Затем нужно написать обработчик событий SelectedIndexChanged. Событие SelectedIndexChanged происходит, когда пользователь нажимает кнопку Выбрать. Дополнительные сведения см. в разделе Практическое руководство. Выбор пользователями элементов в серверном веб-элементе управления DataList.

К началу

Примеры кода

Практическое руководство. Указание формата потока или таблицы в серверных веб-элементах управления DataList

Практическое руководство. Указание расположения по вертикали или по горизонтали в серверных веб-элементах управления DataList

Практическое руководство. Выбор пользователями элементов в серверном веб-элементе управления DataList

Практическое руководство. Предоставление пользователям разрешения на изменение элементов в серверном веб-элементе управления DataList

Практическое руководство. Предоставление пользователям разрешения на удаление элементов в серверном веб-элементе управления DataList

Пошаговое руководство. Отклик на события Button в элементах DataList или Repeater

Практическое руководство. Настройка элементов DataList во время выполнения

Практическое руководство. Динамическая настройка элементов серверного веб-элемента управления DataList

Практическое руководство. Динамическое создание шаблонов в серверном веб-элементе управления DataList

Практическое руководство. Добавление серверных веб-элементов управления DataList на веб-страницу ASP.NET

Пошаговое руководство. Отображение и форматирование данных с помощью серверного веб-элемента управления DataList

К началу

Ссылка на класс

В следующей таблице перечислены ключевые классы, связанные с элементом управления DataList:

Член

Описание

DataList

Основной класс элемента управления.

К началу

См. также

Основные понятия

Общие сведения о доступе к данным в ASP.NET

Шаблоны серверных веб-элементов управления ASP.NET

Другие ресурсы

Элементы управления данными в панели элементов