Marcos Dell' Antonio - Blog sobre .NET, Web, Padrões de projeto e outros assuntos

Terça-feira, Maio 16, 2006

ObjectDataSource e GridView: detalhes ao deletar um registro

Estava fazendo uns testes com o GridView e o ObjectDataSource e encontrei alguns detalhes interessantes:

- Se o GridView não está vinculado a um ObjectDataSource, você pode definir um ButtonField com CommandName = "Delete" e tratar os eventos RowCommand, RowDeleting e RowDeleted.

- Já se o GridView tiver um ObjectDataSource (acredito que qualquer outro tipo de DataSource também esteja valendo), ao clicar em um Button com CommandName = "Delete", a Grid tentará executar o método Delete (DeleteMethod) configurado no ObjectDataSource. O resultado disso é uma exception, pois você não configurou nada nele.

E agora pergunto: como faço se eu quiser usar o ObjectDataSource para listar as informações mas quero implementar o Delete na mão?

Pois é, usando um CommandName = "Delete" não vai dar pelo motivo acima. Então o que resta a fazer é definir o CommandName para outro nome, "Apagar" por exemplo. Dessa forma é possível tratar o evento RowCommand, usando o argumento "e" e testanto "if (e.CommandName == "Apagar") { Remove o que for necessário }".

Falow!

1 Comments:

Postar um comentário

<< Home