Поделиться через


Декларативный синтаксис серверного веб-элемента управления 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.

Шаблон

Описание

AlternatingItemTemplate

Похож на элемент ItemTemplate, но отображается для чередующихся строк в элементе управления Repeater. Внешний вид элемента AlternatingItemTemplate задается с помощью установки его свойств стилей.

FooterTemplate

Элементы, отображающиеся один раз после всех строк с привязкой к данным. Обычно используется для закрытия элемента, открытого в элементе HeaderTemplate, с помощью тега, например </table>.

c012haty.alert_note(ru-ru,VS.90).gifПримечание.
Элемент FooterTemplate не может иметь привязки к данным.

HeaderTemplate

Элементы, которые отображаются один раз перед строками с привязкой к данным. Как правило, открывают элемент контейнера, например, таблицу.

c012haty.alert_note(ru-ru,VS.90).gifПримечание.
Элемент HeaderTemplate не может иметь привязки к данным.

ItemTemplate

Элементы, которые отображаются один раз для каждой строки в источнике данных. Для отображения данных в ItemTemplate необходимо объявить один или несколько серверных веб-элементов управления и задать их выражения привязки к данным так, чтобы их значения соответствовали полям DataSource элемента управления Repeater (то есть элемента управления контейнера). В следующем примере показан пример объявления, при котором отображается поле, содержащее имя в элементе управления Label.

First Name:
<asp:Label runat="server"
   Text="<%# Container.DataItem.FirstName %>" />

SeparatorTemplate

Элементы, которые отображаются между строк, как правило, разрывы строк (теги (<br>), горизонтальная линия (теги (<hr>) и т. п.

c012haty.alert_note(ru-ru,VS.90).gifПримечание.
Элемент SeparatorTemplate не может иметь привязки к данным.

В элементе управления Repeater отсутствует встроенная поддержка операций выборки и редактирования. Для обработки событий, отправляемых из шаблонов элементу управления, для события ItemCommand элемента управления можно создать обработчик.

Элемент управления привязывает свои шаблоны Item и AlternatingItem к структуре данных, указанной в свойствах элемента управления DataSource или DataSourceID. (Шаблоны Header, Footer и Separator не могут иметь привязки к данным). Если для элемента управления Repeater свойство DataSource установлено, но данные не возвращены, то элемент управления отобразит шаблоны Header и Footer, но не отобразит элементы. Если свойство DataSource не установлено, элемент управления Repeater не отображается.

c012haty.alert_caution(ru-ru,VS.90).gifВнимание!

До отображения в элементе управления 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>

См. также

Ссылки

Repeater

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

Синтаксис серверного веб-элемента управления