Partilhar via


Visão geral do controle do servidor da Web FormView

O controle FormView é usado para exibir um registro por vez de uma fonte de dados.Ao utilizar o controle FormView, você cria modelos para exibir e editar valores vinculados a dados.Os modelos contém controles, expressões de vinculação, e formatação que definem a aparência e a funcionalidade do formulário.O controle FormView é geralmente usado em combinação com um controle GridView para cenários de detalhes mestre.

Esse tópico contém:

  • Segundo plano

  • Exemplos de código

  • Referência de Classe

Segundo plano

O controle FormView permite que você trabalhe com um registro por vez da fonte de dados, similar ao controle DetailsView.A diferença entre os controles FormView e DetailsView é que o controle DetailsView utiliza um layout tabular em que cada campo do registro é exibido como uma linha dele próprio.Em contraste, o controle FormView não especifica um layout pré-definido para exibição do registro.Ao invés disto, você cria um modelo que contenha controles para exibir campos individuais de um registro.Os modelos contém formatação, controles, e expressões de vinculação para criar o formulário.

O controle FormView é usado tipicamente para atualização e inserção de novos registros.É usado frequentemente em cenários mestre/detalhes em que os registros selecionados do controle mestre determinam a exibição do registro no controle FormView.Para mais informações e um exemplo, consulte Modificando dados usando um controle FormView de servidor Web.

O controle FormView depende das capacidades do controle da fonte de dados para executar tarefas como atualização, inserção, e exclusão de registros.O controle FormView exibe somente um único registro de dados ao mesmo tempo, mesmo se sua fonte de dados expõe vários registros.

O controle FormView pode sobrescrever automaticamente os dados na sua fonte de dados um registro por vez.Isso requer que os dados sejam representados por um objeto que implementa a interface ICollection, ou sua fonte de dados subjacente que suporte paginação.O controle FormView provê a interface com o usuário (IU) para navegação entre registros.Para habilitar o comportamento de páginação, configure a propriedade AllowPaging para true e especifique um valor PagerTemplate.

O controle FormView expõe vários eventos que você possa gerenciar para executar seu próprio código.Os eventos são disparados antes e depois das operações de inserção, atualiazação, e exclusão do controle de fonte de dados associada.Você também pode gravar manipuladores para eventos ItemCreated e ItemCommand.Para obter mais informações, consulte Eventos de controle do servidor Web FormView.

Observação:

O modelo de evento do controle FormView é como o do controle GridView.Contudo, o controle FormView não suporta um evento de seleção, devido ao registro atual ser sempre o item selecionado.

Vinculação de dados com o controle FormView

O controle FormView lhe garante essas opções para vinculação de dados:

  • Vinculação de dados utilizando a propriedade DataSourceID, que habilita que você vincule o controle FormView a um controle de fonte de dados.Essa é a abordagem recomendada porque ela permite que o controle FormView aproveite os recursos do controle de fonte de dados e fornece a funcionalidade interna de atualização e paginação.

  • Vinculação de dados utilizando a propriedade DataSource, que permite que você vincule os vários objetos, incluindo datasets ADO.NET e leitores de dados.Essa abordagem requer que o código seja gravado para quaisquer funcionalidades adicionais como atualização e paginação.

Quando você vincula uma fonte de dados utilizando a propriedade DataSourceID, o controle FormView suporta uma vinculação de dados bidirecional.Além de exibir os dados, você pode ativar o controle para suportar automaticamente a inserção, atualização, e as operações de exclusão sobre os dados acoplados.

Para obter mais informações, consulte Controles Servidores da Web com fonte de dados.

Criar a controle da interface do usuário FormView

Você constrói a interface de usuário (IU) para o controle FormView criando modelos.Você pode especificar modelos diferentes para ações diferentes.Você cria um modelo ItemTemplate para os modos de exibição, inserção, e edição.Você pode criar páginas de controle utilizando um modelo PagerTemplate, e você pode personalizar os cabeçalhos de controle FormView e rodapés usando HeaderTemplate e FooterTemplate, respectivamente.Utilizando EmptyDataTemplate, você pode também especificar um modelo para exibição quando as fontes de dados não retornam dados.Para obter mais informações, consulte Criando modelos para o controle FormView de Servidor Web.

Os modelos de itens que você criou para o controle FormView especificam o conteúdo do controle.Como com o controle DetailsView, você também poderá personalizar a exibição do formato do controle FormView utilizando propriedades de estilo como EditRowStyle, EmptyDataRowStyle, FooterStyle, HeaderStyle, InsertRowStyle, PagerStyle, e RowStyle.

O exemplo a seguir mostra um página da Web do ASP.NET que utiliza um controle FormView para exibição de dados.

<%@ 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 >
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" >
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

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

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

                <ItemTemplate>
                  <table>
                    <tr>
                      <td align="right"><b>Product ID:</b></td>
                      <td><asp:Label id="ProductIDLabel"  Text='<%# Eval("ProductID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Product Name:</b></td>
                      <td><asp:Label id="ProductNameLabel"  Text='<%# Eval("ProductName") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Category ID:</b></td>
                      <td><asp:Label id="CategoryIDLabel"  Text='<%# Eval("CategoryID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Quantity Per Unit:</b></td>
                      <td><asp:Label id="QuantityPerUnitLabel"  Text='<%# Eval("QuantityPerUnit") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Unit Price:</b></td>
                      <td><asp:Label id="UnitPriceLabel"  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 >
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" >
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

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

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

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

Voltar ao topo

Exemplos de código

Criando modelos para o controle FormView de Servidor Web

Paginação no controle FormView do servidor Web

Modificando dados usando um controle FormView de servidor Web

Eventos de controle do servidor Web FormView

Demonstra Passo a passo: Exibindo dados em páginas da Web com o controle FormView servidor Web com formatação

Voltar ao topo

Referência de Classe

A tabela seguinte lista as classes chave que estão relacionados ao controle FormView.

Membro

Descrição

FormView

A classe principal para o controle.

Voltar ao topo

Consulte também

Conceitos

Visão Geral do Acesso a Dados ASP.NET

Modelos de controles servidores web ASP.NET

Outros recursos

Controles Data da Toolbox