Веб-формы ASP.NET — управление повторителем
Элемент управления ASP.NETRepeater — это исходный элемент управления привязкой данных. В этом разделе описывается использование элемента управления Repeater в операциях привязки данных ASP.NET.
Элемент управления «Повторитель» используется для отображения повторяющегося списка элементов, привязанных к элементу управления.
Привяжите DataSet к элементу управления Повторитель.
Элемент управления «Повторитель» используется для отображения повторяющегося списка элементов, привязанных к элементу управления. Элементы управления повторителем могут быть привязаны к таблицам базы данных, файлам XML или другим спискам элементов. Здесь мы продемонстрируем, как привязать XML-файл к элементу управления Повторитель.
В нашем примере мы будем использовать следующий XML-файл («cdcatalog.xml»):
<?xml version="1.0"coding="ISO-8859-1"?> <catalog> <cd> <title>Империя бурлеска</title> <artist>Боб Дилан</artist> <country>США</country > <company>Колумбия</company> <price>10.90</price> <year>1985</year> </cd> <cd> <title>Спрячь свое сердце</title> <artist>Бонни Тайлер</artist> <country>UK</country> <company>CBS Records</company> <price>9,90</price> <year>1988</year> </cd> <cd> <title>Greatest Hits </title> <artist>Dolly Parton</artist> <country>США</country> <company>RCA</company> <price>9.90</price> <year>1982</year> </cd> <cd> <title>Все еще есть блюз</title> <artist>Гэри Мур</artist> <country>UK</country> <company>Virgin Records</company> <price>10.20</price> <year >1990</year> </cd> <cd> <title>Эрос</title> <artist>Эрос Рамазотти</artist> <country>EU</country> <company>BMG</company> <price>9,90</price> <year>1997</year> </cd> </catalog>Просмотрите этот XML-файл: cdcatalog.xml
Сначала импортируйте пространство имен «System.Data». Нам нужно это пространство имен для работы с объектами DataSet. Включите следующую директиву в верхней части страницы .aspx:
<%@ Import Namespace="System.Data" %>Затем создайте DataSet для XML-файла и загрузите XML-файл в DataSet при первой загрузке страницы:
<script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) end if end subЗатем мы создаем элемент управления Повторитель на странице .aspx. Содержимое элемента <HeaderTemplate> визуализируется первым и появляется в выходных данных только один раз, тогда как содержимое элемента <ItemTemplate> повторяется для каждой «записи» в DataSet. Наконец, содержимое элемента <FooterTemplate>. Появляется только один раз в выводе:
<html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> < FooterTemplate> ... </FooterTemplate> </asp:Repeater> </form> </body> </html>Затем мы добавляем скрипт для создания набора данных и привязываем набор данных mycdcatalog к элементу управления Повторитель. Затем используйте теги HTML для заполнения элемента управления Повторитель и привяжите элементы данных к ячейкам в области <ItemTemplate> с помощью <%#Container.DataItem("fieldname")%>:
Пример
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load, если не Page.IsPostBack, затем dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource =mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table> <tr> <th>Название</th> <th>Исполнитель</th> <th>Страна </th> <th>Компания</th> <th>Цена</th> <th>Год</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem( "country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <FooterTemplate > </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>Совет: Для получения информации о тегах HTML вы можете обратиться к «Справочному руководству по HTML» на этом сайте!
Используйте <AlternatingItemTemplate>
Вы можете добавить элемент <AlternatingItemTemplate> после элемента <ItemTemplate>, чтобы описать внешний вид чередующихся строк в выходных данных. В приведенном ниже примере каждая вторая строка таблицы отображается на светло-сером фоне:
Пример
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load, если не Page.IsPostBack, затем dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource =mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table> <tr> <th>Название</th> <th>Исполнитель</th> <th>Страна </th> <th>Компания</th> <th>Цена</th> <th>Год</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem( "country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <AlternatingItemTemplate > <tr bgcolor="#e8e8e8"> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem( "company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> < /тело> </html>Используйте <SeparatorTemplate>
Элемент <SeparatorTemplate> используется для описания разделителя между каждой записью. В примере ниже между каждой строкой таблицы вставляется горизонтальная линия:
Пример
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load, если не Page.IsPostBack, затем dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource =mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table> <tr> <th>Название</th> <th>Исполнитель</th> <th>Страна </th> <th>Компания</th> <th>Цена</th> <th>Год</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem( "country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <SeparatorTemplate > <tr> <td colspan="6"><hr /></td> </tr> </SeparatorTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>Выше приведено введение в использование элемента управления ASP.NETRepeater.