<ItemTemplate>
...
</ItemTemplate>
</asp:DataList>
Внутри объявлений шаблонов нам нужно будет выводить разделы HTML, включая параметры с данными, связанными с элементом управления. Существует специальный синтаксис, который можно использовать для вывода таких параметров:
DataBinder.Eval()
. Эта полезная функция может использоваться для вывода данных из таблицы, связанной с элементом управления, определяя столбец с помощью следующего синтаксиса:
<%# DataBinder.Eval(Container.DataItem, 'ColumnName') %>
Существует также необязательный третий параметр, позволяющий сформатировать возвращаемые данные, который имеет синтаксис, идентичный выражениям форматирования строк, используемым в других местах.
Полное описание доступных шаблонов дано в следующей таблице:
Шаблон | Описание |
---|---|
<ItemTemplate> | Шаблон используется для элементов списка. |
<HeaderTemplate> | Шаблон используется для вывода перед списком. |
<FooterTemplate> | Шаблон используется для вывода после списка. |
<SeparatorTemplate> | Шаблон используется между элементами списка. |
<AlternatingItemTemplate> | Шаблон для альтернативных элементов, способствует проявлению видимости. |
<SelectedItemTemplate> | (Только DataList ) Шаблон используется для выбранных элементов в списке. |
<EditItemTemplate> | (Только DataList ) Шаблон используется для элементов в списке, которые редактируются. |
Рассмотрим это на примере. Используем для него запрос существующих данных в PCSWebApp3
.
Расширим таблицу вверху страницы, чтобы она содержала DataList
, выводящий каждое из мероприятий, хранящихся в базе данных. Мы сделаем эти мероприятия выбираемыми, чтобы данные любого мероприятия можно было вывести, щелкая на его имени. Изменения в коде в PCSWebApp3
показаны ниже:
<tr>
<td align=middle colSpan=3>
<asp:validationsummary id=validationSummary Runat='server' headertext='Before submitting your request:' />
</td>
</tr>
<tr>
<td align-left colSpan=3 width='100%'>
<table cellspacing=4>
<tr>
<td width='40%' bgcolor='#ccffcc' >
<asp:DataList Runat='server'
ID='eventDetails2'
OnSelectedIndexChanged='eventDetails2_SelectedIndexChanged' >
<ItemTemplate>
<asp:LinkButton Runat='server' CommandName='Select'
forecolor='#0000ff' ID='Linkbutton1'>
<%# DataBinder.Eval(Container.DataItem, 'Name') %>
</asp:LinkButton>
<br>
</ItemTemplate>
<SelectedItemTemplate>
<b><%# DataBinder.Eval(Container.DataItem, 'Name') %></b>
<br>
</SelectedItemTemplate>
</asp:DataList>
</td>
<td valign='top'>
<asp:Label Runat='server' ID='edName'
Font-Name='Arial' Font-Bold='True'
Font-Italic='True' Font-Size='14'> Select an event to view details. </asp:Label>
<br>
<asp:Label Runat='server' ID='edDate' />
<br>
<asp:Label Runat='server' ID='edRoom' />