segunda-feira, 5 de maio de 2008

FormView - Visão Geral

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).

Referências:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.formview.aspx
http://msdn.microsoft.com/en-us/library/aa581783.aspx