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
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. |
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.
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
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
Voltar ao topo
A tabela seguinte lista as classes chave que estão relacionados ao controle FormView.
Membro |
Descrição |
---|---|
A classe principal para o controle. |
Voltar ao topo
Visão Geral do Acesso a Dados ASP.NET