Веб-формы ASP.NET — элемент управления DataList
В этом разделе представлены Элемент управления ASP.NET DataList более гибок, чем элемент управления Repeater. Элемент управления DataList представляет данные в виде таблицы.Элемент управления DataList, аналогичный элементу управления Повторитель, используется для отображения повторяющегося списка элементов, привязанных к элементу управления. Однако элемент управления DataList по умолчанию добавляет таблицу к элементам данных.
Привязка DataSet к элементу управления DataList
Элемент управления DataList, аналогичный элементу управления Повторитель, используется для отображения повторяющегося списка элементов, привязанных к элементу управления. Однако элемент управления DataList по умолчанию добавляет таблицу к элементам данных. Элемент управления DataList может быть привязан к таблице базы данных, XML-файлу или другому списку элементов. Здесь мы продемонстрируем, как привязать XML-файл к элементу управления DataList.
В нашем примере мы будем использовать следующий 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>Великобритания</country><company>CBS Records</company><price>9,90</price><year>1988</year></cd><cd><title>Greatest Hits </title><artist>Долли Партон</artist><country>США</country><company>RCA</company><price>9.90</price><year>1982</year></cd><cd><title>Еще получил блюз</title><artist>Гэри Мур</artist><country>Великобритания</country><company>Virgin пластинки</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_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))end ifend subЗатем мы создаем элемент управления DataList на странице .aspx. Содержимое элемента <HeaderTemplate> визуализируется первым и появляется в выходных данных только один раз, тогда как содержимое элемента <ItemTemplate> повторяется для каждой «записи» в DataSet. Наконец, содержимое элемента <FooterTemplate>. Появляется только один раз в выводе:
<html><body><form runat="server"><asp:DataList id="cdcatalog" runat="server"><HeaderTemplate>...</HeaderTemplate><ItemTemplate>...</ItemTemplate>< FooterTemplate>...</FooterTemplate></asp:DataList></form></body></html>Затем мы добавляем сценарий для создания набора данных и привязываем набор данных mycdcatalog к элементу управления DataList. Затем элемент управления DataList заполняется элементом <HeaderTemplate>, содержащим заголовок, элементом <ItemTemplate>, содержащим отображаемые элементы данных, и элементом <FooterTemplate>, содержащим текст. Обратите внимание, что вы можете установить для свойства линий сетки DataList значение «оба», чтобы отобразить границы таблицы:
Пример
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"gridlines="both" runat="server"><HeaderTemplate>Мой каталог компакт-дисков</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title" )%>" из<%#Container.DataItem("художник")%> -$<%#Container.DataItem("price")%></ItemTemplate><FooterTemplate>Авторские права Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Использовать стили
Вы также можете добавить стили к элементу управления DataList, чтобы сделать вывод более интересным:
Пример
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -горизонта lalign="center"headerstyle-font-bold="true"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"footerstyle-font-size="9pt"footerstyle-font-italic="true">< Шаблон заголовка>Мой Каталог компакт-дисков</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><FooterTemplate>Авторские права Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Используйте <AlternatingItemTemplate>
Вы можете добавить элемент <AlternatingItemTemplate> после элемента <ItemTemplate>, чтобы описать внешний вид чередующихся строк в выходных данных. Вы можете добавить стили к данным в области <AlternatingItemTemplate> внутри элемента управления DataList:
Пример
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizontalalign="center"headerstyle-font-bold="Tr" ue"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"alternatingitemstyle-backcolor="#e8e8e8"alternatingitemstyle-forecolor="#000000"footerstyle-font-size="9pt"footerstyle-font-italic=" True"><HeaderTemplate>Мой Каталог компакт-дисков</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><AlternatingItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></AlternatingItemTemplate><FooterTemplate>© Hege Refsnes</FooterTemplate></asp:DataList>< /form></body></html>