Поделиться через


Общие сведения о серверном веб-элементе управления FormView

Обновлен: Ноябрь 2007

Элемент управления FormView используется для поочередного отображения записей из источника данных. При использовании элемента управления FormView для отображения и редактирования значений с привязкой к данным создаются шаблоны. Шаблоны содержат элементы управления, выражения привязки и форматирование, определяющие внешний вид и функциональные возможности формы. Элемент управления FormView часто используется в сочетании с элементом управления GridView в сценариях «основной-подробности».

В этом разделе рассматриваются следующие темы:

  • Базовые сведения

  • Примеры кода

  • Ссылки на классы

Базовые сведения

Элемент управления FormView позволяет работать с одиночной записью из источника данных аналогично элементу управления DetailsView. Различие между элементами управления FormView и DetailsView заключается в том, что элемент управления DetailsView использует табличный макет, где каждое поле записи отображается как отдельная строка. Напротив, элемент управления FormView не указывает предопределенный макет для отображения записи. Вместо этого необходимо создать шаблон, содержащий элементы управления для отображения отдельных полей записи. Шаблон содержит форматирование, элементы управления и выражения привязки, используемые для создания формы.

Обычно элемент управления FormView используется для изменения и вставки новых записей. Часто он используется при использовании отношения «основной-подробности», в котором выбранная запись главного элемента управления определяет то, какая запись будет отображаться в элементе управления FormView. Дополнительные сведения и пример см. в разделе Изменение данных с помощью серверного веб-элемента управления FormView.

Для выполнения таких задач, как обновление, вставка и удаление записей, элемент управления FormView использует возможности элемента управления источника данных. Элемент управления FormView отображает только одну запись данных за раз, даже если источник данных предоставляет несколько записей.

Элемент управления FormView может автоматически выполнять разбиение данных по страницам в связанном источнике данных по одной записи за раз. Для этого необходимо, чтобы данные были представлены объектом, реализующим интерфейс ICollection, или чтобы базовый источник данных поддерживал разбиение по страницам. Элемент управления FormView предоставляет пользовательский интерфейс для перехода между записями. Чтобы включить поведение разбиения по страницам, задайте для свойства AllowPaging значение true и укажите значение свойства PagerTemplate.

Элемент управления FormView предоставляет несколько событий, которые можно обрабатывать, выполняя собственный код. События происходят до и после операций вставки, обновления и удаления в связанном элементе управления источника данных. Также можно создать обработчики для событий ItemCreated и ItemCommand. Дополнительные сведения см. в разделе События серверного веб-элемента управления FormView.

ms227992.alert_note(ru-ru,VS.90).gifПримечание.

Модель событий элемента управления FormView подобна модели событий элемента управления GridView. Тем не менее, элемент управления FormView не поддерживает событие выборки, поскольку текущая запись всегда является выбранным элементом.

Привязка данных к элементу управления FormView

Элемент управления FormView предоставляет следующие параметры привязки к данным:

  • Привязка к данным с помощью свойства DataSourceID, позволяющая привязать элемент управления FormView к элементу управления источника данных. Этот подход является рекомендуемым, поскольку он позволяет элементу управления FormView использовать возможности элемента управления источника данных, предоставляя встроенные функциональные возможности обновления и разбиения по страницам.

  • Привязка данных с помощью свойства DataSource, позволяющая осуществлять привязку к различным объектам, в том числе к наборам данных и модулям чтения данных ADO.NET. Для этого подхода необходимо написание кода всей дополнительной функциональности, например, для обновления или разбиения по страницам.

При выполнении привязки к источнику данных с использованием свойства DataSourceID элемент управления FormView поддерживает двустороннюю привязку данных. Помимо отображения данных элементом управления, можно включить в элементе управления автоматическую поддержку операций вставки, обновления и удаления связанных данных.

Дополнительные сведения см. в разделе Серверные веб-элементы управления источников данных.

Создание пользовательского интерфейса элемента управления FormView

Пользовательский интерфейс для элемента управления FormView создается путем создания шаблонов. Для разных действий указываются разные шаблоны. Шаблон ItemTemplate создается для режима отображения, вставки и редактирования. Разбиение по страницам можно контролировать с помощью шаблона PagerTemplate, а заголовок и нижний колонтитул элемента управления FormView можно настроить, воспользовавшись свойствами HeaderTemplate и FooterTemplate. Также можно указать шаблон, отображаемый в случае, если источник данных не возвращает данные, используя EmptyDataTemplate. Дополнительные сведения см. в разделе Создание шаблонов для серверного веб-элемента управления FormView.

Шаблоны элементов, создаваемые для элемента управления FormView, задают содержимое элемента управления. Как и в случае с элементом управления DetailsView, формат отображения элемента управления FormView можно настроить с помощью свойств стиля, например, EditRowStyle, EmptyDataRowStyle, FooterStyle, HeaderStyle, InsertRowStyle, PagerStyle и RowStyle.

В следующем примере показана страница ASP.NET, использующая элемент управления FormView для отображения данных.

<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

              <asp:FormView ID="ProductsFormView"
                DataSourceID="ProductsSqlDataSource"
                AllowPaging="true"
                runat="server">

                <HeaderStyle forecolor="white" backcolor="Blue" />                

                <ItemTemplate>
                  <table>
                    <tr>
                      <td align="right"><b>Product ID:</b></td>
                      <td><asp:Label id="ProductIDLabel" runat="server" Text='<%# Eval("ProductID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Product Name:</b></td>
                      <td><asp:Label id="ProductNameLabel" runat="server" Text='<%# Eval("ProductName") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Category ID:</b></td>
                      <td><asp:Label id="CategoryIDLabel" runat="server" Text='<%# Eval("CategoryID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Quantity Per Unit:</b></td>
                      <td><asp:Label id="QuantityPerUnitLabel" runat="server" Text='<%# Eval("QuantityPerUnit") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Unit Price:</b></td>
                      <td><asp:Label id="UnitPriceLabel" runat="server" Text='<%# Eval("UnitPrice") %>' /></td>
                    </tr>
                  </table>                 
                </ItemTemplate>

                <PagerTemplate>
                  <table>
                    <tr>
                      <td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
                      <td><asp:LinkButton ID="PrevButton"  CommandName="Page" CommandArgument="Prev"  Text="<"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="NextButton"  CommandName="Page" CommandArgument="Next"  Text=">"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="LastButton"  CommandName="Page" CommandArgument="Last"  Text=">>" RunAt="server"/></td>
                    </tr>
                  </table>
                </PagerTemplate>

              </asp:FormView>

            </td>
          </tr>
        </table>

        <asp:SqlDataSource ID="ProductsSqlDataSource" 
          SelectCommand="SELECT * FROM [Products]" 
          connectionstring="<%$ ConnectionStrings:NorthwindConnection %>" 
          RunAt="server"/>

      </form>
  </body>
</html>
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

              <asp:FormView ID="ProductsFormView"
                DataSourceID="ProductsSqlDataSource"
                AllowPaging="true"
                runat="server">

                <HeaderStyle forecolor="white" backcolor="Blue" />                

                <ItemTemplate>
                  <table>
                    <tr>
                      <td align="right"><b>Product ID:</b></td>
                      <td><asp:Label id="ProductIDLabel" runat="server" Text='<%# Eval("ProductID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Product Name:</b></td>
                      <td><asp:Label id="ProductNameLabel" runat="server" Text='<%# Eval("ProductName") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Category ID:</b></td>
                      <td><asp:Label id="CategoryIDLabel" runat="server" Text='<%# Eval("CategoryID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Quantity Per Unit:</b></td>
                      <td><asp:Label id="QuantityPerUnitLabel" runat="server" Text='<%# Eval("QuantityPerUnit") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Unit Price:</b></td>
                      <td><asp:Label id="UnitPriceLabel" runat="server" Text='<%# Eval("UnitPrice") %>' /></td>
                    </tr>
                  </table>                 
                </ItemTemplate>

                <PagerTemplate>
                  <table>
                    <tr>
                      <td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
                      <td><asp:LinkButton ID="PrevButton"  CommandName="Page" CommandArgument="Prev"  Text="<"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="NextButton"  CommandName="Page" CommandArgument="Next"  Text=">"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="LastButton"  CommandName="Page" CommandArgument="Last"  Text=">>" RunAt="server"/></td>
                    </tr>
                  </table>
                </PagerTemplate>

              </asp:FormView>

            </td>
          </tr>
        </table>

        <asp:SqlDataSource ID="ProductsSqlDataSource" 
          SelectCommand="SELECT ProductID, ProductName, CategoryID, QuantityPerUnit, UnitPrice FROM [Products]" 
          connectionstring="<%$ ConnectionStrings:NorthwindConnection %>" 
          RunAt="server"/>

      </form>
  </body>
</html>

К началу

Примеры кода

Создание шаблонов для серверного веб-элемента управления FormView

Разбиение по страницам в серверном в веб-элементе управления FormView

Изменение данных с помощью серверного веб-элемента управления FormView

События серверного веб-элемента управления FormView

Пошаговое руководство. Отображение форматированных данных на веб-страницах с помощью серверного веб-элемента управления FormView

К началу

Ссылки на классы

В приведенной ниже таблице перечислены ключевые классы, связанные с элементом управления FormView.

Член

Описание

FormView

Основной класс элемента управления.

К началу

См. также

Основные понятия

Общие сведения о доступе к данным в ASP.NET

Шаблоны серверных веб-элементов управления ASP.NET

Другие ресурсы

Элементы управления данными в панели элементов