Декларативный синтаксис серверного веб-элемента управления Repeater
Обновлен: Ноябрь 2007
Создает элемент управления с привязкой к данным, позволяющий настраивать макет за счет повторного использования указанного шаблона для каждого отображаемого элемента списка.
<asp:Repeater
DataMember="string"
DataSource="string"
DataSourceID="string"
EnableTheming="True|False"
EnableViewState="True|False"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnItemCommand="ItemCommand event handler"
OnItemCreated="ItemCreated event handler"
OnItemDataBound="ItemDataBound event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
runat="server"
Visible="True|False"
>
<AlternatingItemTemplate>
<!-- child controls -->
</AlternatingItemTemplate>
<FooterTemplate>
<!-- child controls -->
</FooterTemplate>
<HeaderTemplate>
<!-- child controls -->
</HeaderTemplate>
<ItemTemplate>
<!-- child controls -->
</ItemTemplate>
<SeparatorTemplate>
<!-- child controls -->
</SeparatorTemplate>
</asp:Repeater>
Заметки
Элемент управления Repeater используется для создания базового шаблонного списка с привязкой к данным. Элемент управления Repeater не имеет встроенных стилей или вариантов разметки, поэтому все теги расположения HTML, стилей и форматирования должны явным образом объявляться в шаблонах элементов управления.
Отличие элемента управления Repeater от других элементов управления списками данных состоит в том, что он разрешает вставлять фрагменты HTML в свои шаблоны. Это позволяет создавать сложные структуры HTML, например, таблицы. Например, создание списка в таблице HTML начинается с размещения тега <table> в HeaderTemplate. Далее создаются строки и столбцы таблицы с помощью тегов <tr> и <td>, а также элементов с привязкой к данным в ItemTemplate. Если в таблице необходим другой внешний вид для чередующихся элементов, создается шаблон AlternatingItemTemplate с тем же содержимым, что у ItemTemplate, за исключением заданного стиля. Создание таблицы завершается размещением тега </table> в FooterTemplate.
В следующей таблице представлены различные шаблоны элемента управления Repeater.
Шаблон |
Описание |
---|---|
Похож на элемент ItemTemplate, но отображается для чередующихся строк в элементе управления Repeater. Внешний вид элемента AlternatingItemTemplate задается с помощью установки его свойств стилей. |
|
Элементы, отображающиеся один раз после всех строк с привязкой к данным. Обычно используется для закрытия элемента, открытого в элементе HeaderTemplate, с помощью тега, например </table>.
Примечание.
Элемент FooterTemplate не может иметь привязки к данным.
|
|
Элементы, которые отображаются один раз перед строками с привязкой к данным. Как правило, открывают элемент контейнера, например, таблицу.
Примечание.
Элемент HeaderTemplate не может иметь привязки к данным.
|
|
Элементы, которые отображаются один раз для каждой строки в источнике данных. Для отображения данных в ItemTemplate необходимо объявить один или несколько серверных веб-элементов управления и задать их выражения привязки к данным так, чтобы их значения соответствовали полям DataSource элемента управления Repeater (то есть элемента управления контейнера). В следующем примере показан пример объявления, при котором отображается поле, содержащее имя в элементе управления Label.
|
|
Элементы, которые отображаются между строк, как правило, разрывы строк (теги (<br>), горизонтальная линия (теги (<hr>) и т. п.
Примечание.
Элемент SeparatorTemplate не может иметь привязки к данным.
|
В элементе управления Repeater отсутствует встроенная поддержка операций выборки и редактирования. Для обработки событий, отправляемых из шаблонов элементу управления, для события ItemCommand элемента управления можно создать обработчик.
Элемент управления привязывает свои шаблоны Item и AlternatingItem к структуре данных, указанной в свойствах элемента управления DataSource или DataSourceID. (Шаблоны Header, Footer и Separator не могут иметь привязки к данным). Если для элемента управления Repeater свойство DataSource установлено, но данные не возвращены, то элемент управления отобразит шаблоны Header и Footer, но не отобразит элементы. Если свойство DataSource не установлено, элемент управления Repeater не отображается.
Внимание! |
---|
До отображения в элементе управления Repeater текст не преобразуется в формат HTML. Это позволяет внедрять в текст сценарий, заключенный в теги HTML. Если значения элемента управления вводятся пользователем, их следует проверять на допустимость, чтобы избежать появления слабых мест в системе безопасности. |
Подробные сведения о свойствах и событиях серверного веб-элемента управления Repeater см. в описании класса Repeater.
Пример
В следующем примере кода показано использование свойства DataSourceID для задания источника данных для элемента управления Repeater. В этом коде свойству DataSourceID присваивается значение свойства ID элемента управления SqlDataSource, используемого для извлечения данных. При загрузке страницы элемент управления Repeater автоматически привязывается к источнику данных, заданного элементом управления SqlDataSource, после чего происходит отображение данных.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Repeater.DataSourceID Property Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>Repeater.DataSourceID Property Example</h3>
<asp:repeater id="Repeater1"
datasourceid="SqlDataSource1"
runat="server">
<headertemplate>
<table border="1">
<tr>
<td><b>Product ID</b></td>
<td><b>Product Name</b></td>
</tr>
</headertemplate>
<itemtemplate>
<tr>
<td> <%# Eval("ProductID") %> </td>
<td> <%# Eval("ProductName") %> </td>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
<asp:sqldatasource id="SqlDataSource1"
connectionstring="<%$ ConnectionStrings:NorthWindConnection%>"
selectcommand="SELECT ProductID, ProductName FROM [Products] Where ProductID <= 10"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
<%@ page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Repeater.DataSourceID Property Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>Repeater.DataSourceID Property Example</h3>
<asp:repeater id="Repeater1"
datasourceid="SqlDataSource1"
runat="server">
<headertemplate>
<table border="1">
<tr>
<td><b>Product ID</b></td>
<td><b>Product Name</b></td>
</tr>
</headertemplate>
<itemtemplate>
<tr>
<td> <%# Eval("ProductID") %> </td>
<td> <%# Eval("ProductName") %> </td>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
<asp:sqldatasource id="SqlDataSource1"
connectionstring="<%$ ConnectionStrings:NorthWindConnection%>"
selectcommand="SELECT ProductID, ProductName FROM [Products] Where ProductID <= 10"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>