• Microsoft .NET
  • ASP.NET
  • Использование элементов управления ListView и DataPager в ASP.NET 3.5

Использование элементов управления 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 в трех колонках, и это будет выглядеть следующим образом в обозревателе.