Путь разработчика

Сборник полезных примеров и советов для .NET программистов

Табличный вывод данных в ASP.NET.

2010-04-27 от Kosten

При разработке web-приложений представление данных в виде таблиц - обычное явление. ASP.NET предлагает разработчикам стандартные компоненты представления данных в виде таблиц. Я хочу рассмотреть один из них - ListView.
В отличии от других компонентов он мне нравится тем, что позволяет управлять кодом разметки и поведением таблицы. Для тех, кто только начинает работать с ListView я хочу показать несколько типовых вариантов его использование.
Задача - вывод данных из БД в таблицу на страницу. Пусть наша БД состоит из одной таблицы, которая имеет следующую структуру:

ФИО - nvchar(35)
Адрес - nvchar(50)
Телефон - nvchar(20)
Дата рождения - datetime
Пол - bool
Описание - text

Для подключения к БД создадим строку подключения в файле web.config

<connectionStrings>
    <add name="dbConnectionString" connectionString="Data Source=COMPUTER\SQLEXPRESS;Initial Catalog=dbDataBase;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

Создадим источник данных на странице, который будет получать данные из нашей таблицы:

    <asp:SqlDataSource ID="dsDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:dbConnectionString %>"
        SelectCommand="SELECT Surname, Name, Patronymic, Addr, Phone, BirthDate, Gender, Description FROM tblTable"></asp:SqlDataSource>

Подготовительные действия выполнены, приступим к формированию таблицы:

        <asp:ListView ID="lvDataView" runat="server" DataSourceID="dsDataSource">
            <LayoutTemplate>
                <table border="1" >
                    <tr>
                        <td>
                            ФИО
                        </td>
                        <td>
                            Адрес
                        </td>
                        <td>
                            Телефон
                        </td>
                        <td>
                            Дата рождения
                        </td>
                        <td>
                            Пол
                        </td>
                        <td>
                            Описание
                        </td>
                        <td>
                            Действия
                        </td>
                    </tr>
                    <tr>
                    <tr id="itemPlaceholder" runat="server">
                    </tr>
                </table>
            </LayoutTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <asp:Label ID="lblSurname" runat="server" Text='<%#Eval("Surname")%>' Width="170px"></asp:Label>
                        <br />
                        <asp:Label ID="lblName" runat="server" Text='<%#Eval("Name")%>' Width="170px"></asp:Label>
                        <br />
                        <asp:Label ID="lblPatronymic" runat="server" Text='<%#Eval("Patronymic")%>' Width="170px"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="lblAddr" runat="server" Text='<%#Eval("Addr")%>' Width="170px"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="lblPhone" runat="server" Text='<%#Eval("Phone")%>' Width="100px"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="lblBirthDate" runat="server" Text='<%# String.Format("{0:d.MM.yyyy}", Eval("BirthDate"))%>'
                            Width="170px"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="lblGender" runat="server" Text='<%#Eval("Gender")%>' Width="50px"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="lblDescription" runat="server" Text='<%#Eval("Description")%>' Width="170px"></asp:Label>
                    </td>
                    <td>
                        <asp:LinkButton ID="lbEdit" runat="server" CommandName="Edit" CausesValidation="false">ред.</asp:LinkButton>
                    </td>
                </tr>
            </ItemTemplate>
</ListView>

Рассмотрим этот пример подробнее. Таблица описывается тегами . Аргумент DataSourceID указывает из какого источника данных получать содержимое таблицы. Раздел описывает шаблон нашей таблицы. Обратите внимание, что подробно описывается шапка, часть в которую будут выводится данные представлена в виде:

<tr id="itemPlaceholder" runat="server">

Менять значение аргумента id нельзя. В разделе описывается шаблон для вывода данных. Для связи данных и элементов управления используется конструкция <%#Eval("FieldName")%>, где FieldName - имя поля таблицы из которой мы извлекаем данные. Столбец “Действия” и его назначение мы рассмотрим в следующей статье.
Итак, мы рассмотрели процесс создания таблицы для вывода данных с гибкой возможностью формирования шаблона этой таблицы.


Продажа ювелирных изделий


Приходите к нам - квартиры новостройки лучшие обзоры, лучшие цены дайджест - серебряные подарки исследования, все обзоры, дешёвые бензиновые генераторы комментарии, лучшие новости.

Опубликовано Вторник, 27-04-2010 в 4:43 пп в рубрики Без рубрики. Вы можете оставить отслеживать комментарии к записи при помощи RSS 2.0 ленты. Вы можете оставить комментарий, или трекбек с Вашего сайта.

Оставить комментарий