Maira Cristina Iantas

Meu blog sobre TI, atualidades sobre .Net e tecnologia em geral.

Capturando chaves no GridView utilizando DataKeyNames

O GridView do ASP.Net é um dos componentes web mais ricos  que são utilizados hoje pelos desenvolvedores .Net por possuir inúmeros recursos no tratamento de dados para exibição aos usuários.  Suas propriedades facilitam para os desenvolvedores o manuseio das informações, um dos recursos que iremos ver é o DataKeyNames.

O DataKeyNames é um recurso próprio do GridView para armazenar chaves dos itens que populam um grid, através dele todo e qualquer valor pode ser armazenado de maneira simples ou composta por mais de uma chave.

Para utilizar o DataKeyNames é simples, basta que nas propriedades do grid, seja associado o campo que irá  ser  a chave para identificar o registro no grid.

1

Propriedades no Gridview

Neste exemplo temos um CheckBox e dois campos, nome e idade , para popular o GridView .

2

GridView populado para ilustração do uso do DataKey

Iremos capturar a chave de cada linha que for checada no Gridview. Para isto iremos usar o evento do CheckBox, CheckBox1_CheckedChanged, para cada vez que algum item for checado seja gerado um PostBack, é importante lembrar que a propriedade AutoPostBack do CheckBox deve estar true , dessa maneira no evento do CheckBox será armazenada a minha lista com as chaves das linhas que foram selecionadas.

Seleciono o primeiro item do meu GridView como mostrado abaixo.

3

Primeiro campo é selecionado

Neste momento o evento do CheckBox é chamado, percorro o GridView com um foreach para verificar linha por linha qual o CheckBox que foi selecionado, para então através da propriedadeDataKeys encontrar a chave desta linha. Veja como é exibido na imagem abaixo.

4

Momento de debug o Id sendo capturado pela propriedade DataKeys

Armazeno a chave em uma lista que esta no ViewState com todas as linhas selecionadas.

5

Lista que armazena minhas chaves

Esta lista das linhas selecionadas será usada para alimentar a paginação. Abaixo temos quatro itens da primeira pagina sendo checados.

6

Outras linhas sendo selecionadas

Veja no codebehind como fica a lista que armazena esses quatro itens selecionados acima.

7

Todos as chaves mantidas na lista

Quando a página for trocada e um novo item for checado, como é feito abaixo, esta nova chave é adicionada a lista que esta sendo guardada na ViewState.

8

Nova linha sendo selecionada na segunda página

A lista possui todos os itens que foram checados ate agora, entre a primeira e segunda página.

9

A nova chave é adicionada à lista sem perder as anteriores

Para manter as linhas checadas durante a paginação é necessário que noGridView1_RowDataBound seja controla a lista das linhas que irão ser checadas. Quando na lista existir a chave que pertence àquela linha deve ter o controle CheckBox checado.

10

Momento que a linha é checada quando a chave existe na lista de selecionados

Desta maneira é garantido que ao checar itens e trocar as páginas do GridView, estas informações estarão sendo armazenados e não serão perdidas.

Esta foi um explicação simples e direta de como capturar a chave da linha de um GridView, lembrando que chave pode ser qualquer valor que for declarado no DataKeyNames, nas propriedades do GridView.

Bem, é isso. Espero que seja útil e que eu tenha ajudado com alguma coisa 🙂

É uma informação simples mas que muita gente ainda sofre um pouco por não saber

T++

 

Anúncios

2 Respostas para “Capturando chaves no GridView utilizando DataKeyNames

  1. Bruce 26/12/2010 às 4:06 am

    MAssa. =D

    List Linhaselecionada = Linhaselecionada …

    nunca ouvi falar desse “LIST”
    tem como dar uma breve explicada sobre ele??
    ótimo post!!

    • Maira Cristian Iantas 26/12/2010 às 10:25 am

      Olá Bruce,

      Claro que tem, fica entao aqui anotado para o proximo post uma explicaçao sobre o LIST pra vc, ok ? =D

      Obrigada pela sua participaçao e continue a perguntar qualquer dúvida que venha ter, procurarei ajudar sempre! o/

      Abrços

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: