ASP.NET
2.0 - Usando o controle FormView
![]() |
O controle FormView faz
parte dos novos controles da versão 2.0 da ASP.NET e
pode ser encontrado na guia Data da ToolBox juntamente
com os também novos controles : DetailsView , GridView. Ele pode ser usado para exibir um único registro de uma fonte de dados da mesma forma que o controle DetailsView e possui recursos para exibição e edição dos valores vinculados bem como recursos de formatação. A diferença entre o FormView e o DetailsView é que este último usa um leiaute tabular onde cada campo do registro é exibido como uma linha e o FormView não define um leiaute para exibir o registro. No FormView você cria um modelo composto de controles para exibir os campos individuais a partir do registro. O controle FormView é usado para atualizar e incluir novos registros e geralmente é usado em combinação com um controle GridView para cenários mestre/detalhe. |
Veja também o artigo : ASP.NET 2.0 - Incluindo dados com DetailsView e ASP.NET - Usando o DetailsView (VÍDEO AULA liberada)
As opções que o controle possui para vincular dados são:
As propriedades do formato geral de exibição para o controle FormView é dado a seguir:
<asp:FormView id="id"
Runat="Server" AllowPaging="True|False" Caption="string" CaptionAlign="Top|Bottom|Left|Right|NotSet" CellPadding="n" CellSpacing="n" DataSourceID="id" FooterText="string" GridLines="Both|Horizontal|Vertical|None" HeaderText="string" HeaderStyle-property="value"... RowStyle-property="value"... FooterStyle-property="value"... property="value"... PagerSettings-property="value"... PagerStyle-property="value"... > <HeaderTemplate> XHTML, text and server controls </HeaderTemplate> <ItemTemplate> XHTML, text and server controls </ItemTemplate> <FooterTemplate> XHTML, text and server controls </FooterTemplate> </asp:FormView> |
Usando o controle FormView na prática
O controle fornece modelos de forma a permitir que você edite os dados sem precisar programar, assim, você pode definir um modelo no controle conforme o modo de processamento que deseja usar:
Nota: Usando os modelos EditItemTemplate e InsertItemTemplate você inclui controles que levam a entrada do usuário, tais como os controle TextBox, CheckBox, ou DropDownList. Você também pode adicionar controles para exibir dados somente para leitura, e botões de comando para permitir que usuários editarem o registro atual, insiram um novo registro, ou cancelem a ação atual. Você vincula os controles nos modelos EditItemTemplate e InsertItemTemplate a dados utilizando uma expressão de ligação de dados que inclui o método Bind para ligação bidirecional de dados.
Vamos mostrar como usar o FormView para exibir dados usando o modelo ItemTemplate.
Abra o Visual Web Developer 2005 Express Edition e crie um novo web site na opção File->New Web Site com o nome formView;
Selecione a página Default.aspx na janela Solution Explorer e , no modo Design, inclua , a partir da ToolBox , um controle FormView na página;
A seguir , na guia FormView Tasks, na opção Choose Data Source, selecione <New data source...>
![]() |
Vamos usar como fonte de dados o banco de dados Northwind.mdb , para isso, na próxima janela , selecione a opção Access DataBase e aceite o nome padrão definido pelo assistente para o ID do data source clicando a seguir no botão OK;
![]() |
A seguir informe o caminho de localização da base de dados Northwind.mdb do seu computador;
![]() |
Selecione a seguir a tabela Employees e os seguintes campos da tabela: EmployeeID, LastName, FirstName, BirthDate e City;
![]() |
Ao final, o modo Design, deverá exibir o controle no modo ReadOnly conforme abaixo:
![]() |
A seguir exibimos também os dois outros modos permitidos pelo controle:
1- Modo : Edit: Permite exibir e editar os dados;
![]() |
2- Modo - Insert : Permite inserir dados; |
![]() |
A seguir vamos habilitar a paginação pelo controle marcando a opção Enable Paging e em seguida editar os templates clicando na opção Edit Templates de forma a exibir os templates suportados pelo controle e que permitem uma configuração pelo usuário:
![]() |
|
![]() |
Para mostrar como podemos formatar o controle vamos editar o modo EditItemTemplate e incluir uma tabela com 5 linhas e duas colunas a partir do menu Layout (Insert Table) e a seguir incluir os campos na tabela;
![]() |
Ao final do processo temos a figura abaixo exibindo o resultado esperado. Para encerrar a edição clique na opção : End Template Editing
![]() |
Após efetuar uma formatação através da propriedade AutoFormat , se executarmos o projeto neste momento iremos visualizar a seguinte página. Se você tentar efetuar uma alteração ao clicar no botão Update irá obter uma mensagem de erro pois ainda não definimos os controles para editar os dados.
![]() |
Para habilitar o modo de edição e inclusão devemos incluir os comandos para incluir e editar dados. Fazemos isso clicando na opção Configure Data Source ;
![]() |
Em seguida clique no botão Advanced... e marque as opções : Generate INSERT, UPDATE and DELETE statements e Use optimistic concurrency conforme abaixo:
![]() |
Após a conclusão desta etapa será gerado o código para atualizar, inserir e excluir dados conforme exibido no modo Source da página a seguir:
<asp:AccessDataSource
ID="AccessDataSource1" runat="server"
DataFile="c:\dados\Northwind.mdb" SelectCommand="SELECT [EmployeeID], [LastName], [FirstName], [BirthDate], [City] FROM [Employees]" ConflictDetection="CompareAllValues" DeleteCommand="DELETE FROM [Employees] WHERE [EmployeeID] = ? AND [LastName] = ? AND [FirstName] = ? AND [BirthDate] = ? AND [City] = ?" InsertCommand="INSERT INTO [Employees] ([EmployeeID], [LastName], [FirstName], [BirthDate], [City]) VALUES (?, ?, ?, ?, ?)" OldValuesParameterFormatString="original_{0}" UpdateCommand="UPDATE [Employees] SET [LastName] = ?, [FirstName] = ?, [BirthDate] = ?, [City] = ? WHERE [EmployeeID] = ? AND [LastName] = ? AND [FirstName] = ? AND [BirthDate] = ? AND [City] = ?"> <DeleteParameters> <asp:Parameter Name="original_EmployeeID" Type="Int32" /> <asp:Parameter Name="original_LastName" Type="String" /> <asp:Parameter Name="original_FirstName" Type="String" /> <asp:Parameter Name="original_BirthDate" Type="DateTime" /> <asp:Parameter Name="original_City" Type="String" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="LastName" Type="String" /> <asp:Parameter Name="FirstName" Type="String" /> <asp:Parameter Name="BirthDate" Type="DateTime" /> <asp:Parameter Name="City" Type="String" /> <asp:Parameter Name="original_EmployeeID" Type="Int32" /> <asp:Parameter Name="original_LastName" Type="String" /> <asp:Parameter Name="original_FirstName" Type="String" /> <asp:Parameter Name="original_BirthDate" Type="DateTime" /> <asp:Parameter Name="original_City" Type="String" /> </UpdateParameters> <InsertParameters> <asp:Parameter Name="EmployeeID" Type="Int32" /> <asp:Parameter Name="LastName" Type="String" /> <asp:Parameter Name="FirstName" Type="String" /> <asp:Parameter Name="BirthDate" Type="DateTime" /> <asp:Parameter Name="City" Type="String" /> </InsertParameters> </asp:AccessDataSource> |
Se você desejar efetuar uma formatação específica para algum campo basta editar o template, selecionar o campo e na opção Edit DataBindings definir a formatação na opção format do campo vinculado conforme abaixo:
![]() |
Podemos também alterar o Texto dos links Update e Cancel , estando no modo de edição do template e em propriedades alterar o texto:
![]() |
Executando agora a página teremos a data sendo exibida no formato: dd/mm/aaaa o texto dos links para atualizar e cancelar alterados.
![]() |
Enfim, o controle FormView pode ser uma opção interessante para exibição e edição de dados dependendo da sua necessidade.
Pegue o projeto completo aqui:
formview
Eu sei é apenas
ASP.NET, mas eu gosto...
Referências: http://msdn2.microsoft.com/en-US/library/fyf1dk77.aspx