O FormView permite a exibição de um único registro de uma fonte de dados, sendo possível editar, excluir e inserir registros. O problema que ele vem a resolver é o mesmo que o DetailsView, a diferença é que o FormView permite criar modelos(templates) para definir como os controles ficarão.
O FormView suporta as seguintes funcionalidades:
Fazer bind com controles DataSource(SqlDataSource, XmlDataSource, LinqDataSource etc).
Suporte a inserção
Suporte a atualização e exclusão
Paginação
Acesso ao modelo de objetos FormView para definir propriedade, manipular eventos e outros
Customização da aparência através de modelos de usuários, temas e estilos.
Modelos(Templates)
Para que o FormView mostre conteúdo é necessário criar templates para as diferentes partes do controle. A maioria dos templates são opcionais, porém é necessário criar um template para o modo que o FormView está. Os templates do FormView são:
Tipo de modelo(Template) | Descrição |
EditItemTemplate | Define o modelo para quando o FormView está em edição. Este modelo geralmente tem controles para entrada de dados com os valores atuais do registros. |
EmptyDataTemplate | Define o conteúdo para o modelo quando a fonte de dados não tem registro. Este normalmente tem um aviso para o usuário que não existe o registro solicitado. |
FooterTemplate | Este modelo define o rodapé do FomView. Nota: como alternativa é possível definir a propriedade FooterText |
HeaderTemplate | Este modelo define o cabeçalho do FomView. Nota: como alternativa é possível definir a propriedade HeaderText |
ItemTemplate | Este modelo define o comportamento quando o FormView está em visualização sem permitir a edição. |
InsertItemTemplate | Este modelo permite a inserção de registros na fonte de dados. |
PagerTemplate | Este modelo permite a navegação entre registros do FormView quando a paginação está habilitada(Propriedade AllowPaging definida para true). |
Mostrando Dados
Para fazer bind com controles DataSource deve-se definir a propriedade DataSourceID do GridView com o ID do controle DataSource. Este é preferível em relação ao debaixo, pois provê automaticamente ações como ordenação, atualização, exclusão e paginação.
Para fazer bind com controles que implementam a interface System.Collections.IEnumerable, deve-se através de programação definir a propriedade DataSource e chamar o método DataBind.
Operações de Dados
O FormView reconhece alguns comandos para permitir a atualização, exclusão, inserção e paginação. Como o FormView utiliza modelos(templates) não é gerado automaticamente os botões de comando para estas funcionalidades, então fica a cargo do usuário adicionar estes botões com a propriedade CommandName definido conforme lista abaixo:
Botão | CommandName | Descrição |
Cancel | Cancel | Retorna o FormView para o DefaultMode definido. |
Delete | Delete | Usado nas operações de exclusão do registro corrente, dispara os eventos ItemDeleting e ItemDeleted. |
Edit | Edit | Usado para colocar o FormView no modo de edição. |
Insert | Insert | Usado para inserir um novo registro na fonte de dados. Dispara os eventos ItemInserting e ItemInserted. |
New | New | Usao para colocar o FormView no modo de inserção. |
Page | Page | Usado para paginação. Para usar da paginação defina a propriedade CommandArgument do botão para "Next", "Prev", "First", "Last", ou o indice de página que deseja visualizar. Dispara os eventos PageIndexChanging e PageIndexChanged Nota: Este normalmente é utilizado somente no PagerTemplate |
Update | Update | Usado para atualizar o registro na fonte de dados. Dispara os eventos ItemUpdating e ItemUpdated. |
Customizando interface com o usuário
É possível customizar a aparência do FormView definindo as propriedades de estilo para as diferentes partes do controle:
Propriedades de estilo | Descrição |
EditRowStyle | Configurações de estilo para quando o FormView está em modo de edição. |
EmptyDataRowStyle | Configurações de estilo para quando o FormView não contêm nenhum dado. |
FooterStyle | Configurações de estilo do rodapé do FormView. |
HeaderStyle | Configurações de estilo do cabeçalho do FormView. |
InsertRowStyle | Configurações de estilo para quando o FormView está em modo de inserção. |
PagerStyle | Configurações de estilo da paginação quando está habilitada. |
RowStyle | Configurações de estilo para quando o FormView está em modo de visualização(somente leitura). |