Использование элементов управления ListView и DataPager в ASP.NET 3.5 - Отображение информации в таблице с множеством колонок
ОГЛАВЛЕНИЕ
Отображение информации в таблице с множеством колонок
Отображение записей в таблице с множеством колонок является обычным случаем, когда вам скорее всего понадобится обрабатывать различную форматирующую разметку для групп записей. Часто такое форматирование достигается посредством использования элемента HTML <table> с множеством колонок. К примеру, для того, чтобы отобразить таблицу с тремя колонками, мы обработаем три табличные ячейки (<td>) в каждой строке таблицы (<tr>) следующим образом:
<table ...>
<tr>
<td>Record 1</td>
<td>Record 2</td>
<td>Record 3</td>
</tr>
...
<tr>
<td>Record N - 2</td>
<td>Record N - 1</td>
<td>Record N</td>
</tr>
</table>
Для того, чтобы сгенерировать такую разметку используя элемент управления ListView, нам необходимо использовать LayoutTemplate, который обрабатывает внешние теги <table> и </table>, GroupTemplate который обрабатывает элементы строк таблицы и ItemTemplate, который обрабатывает каждую табличную ячейку. Следующая декларативная разметка отображает информацию в таблице с тремя колонками:
<asp:ListView ID="ProductDataList2" runat="server"
DataSourceID="..." GroupItemCount="3">
<LayoutTemplate>
<table>
<tr>
<td>
<table border="0" cellpadding="5">
<asp:PlaceHolder runat="server" ID="groupPlaceHolder"></asp:PlaceHolder>
</table>
</td>
</tr>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder>
</tr>
</GroupTemplate>
<ItemTemplate>
<td>
<h2><%# Eval("ProductName") %></h2>
Price: <%#Eval("UnitPrice", "{0:c}")%><br />
Category: <%# Eval("CategoryName") %>
</td>
</ItemTemplate>
</asp:ListView>
Приложение к данной статье включает также пример, который отображает записи из таблицы Products базы данных Northwind в трех колонках, и это будет выглядеть следующим образом в обозревателе.