Um dos pontos fortes do ASP.NET foi a implementação de controles ricos de recursos e que facilitam e muito a vida dos desenvolvedores em geral.
Para os que desenvolvem Web, esses recursos ainda são mais bem vindos. Quem desenvolveu na versão anterior do asp, lembra bem como era para montar
uma tabela com valores dinamicos e interagir com eles. Bem, com o lançamento do .NET, o controle GridView é um dos mais completos e
cheios de funções que antes davam muito trabalho de controlar e manipular.
Uma propriedade muito interessante para quem desenvolve CRUD(Create, Retrieve, Update, Delete) é o DataKeyNames.
Muito simples de se utilizar, essa propriedade permite mapear chaves que podem ser recuperadas em eventos para inserir,
deletar ou atualizar dados do banco.
Para utilizar o DataKeyNames é muito simples,
basta adicionar na sua Grid, a propriedade DataKeyNames="EMP_NO"
e o nome da propriedade que você deseja armazenar. No exemplo, eu adicionei o campo EMP_NO, que é o codigo do funcionário,
veja que só existe um campo, mas você pode adicionar mais chaves apenas separando com virgula esses valores.
Veja o exemplo da Grid completa:
<asp
:GridView
ID="GridView1"
runat="server" AutoGenerateColumns
="False" DataKeyNames="EMP_NO"
OnSelectedIndexChanging="GridView1_SelectedIndexChanging">
<Columns>
<asp:
BoundField DataField="FIRST_NAME"
HeaderText="Nome" ReadOnly
="True" SortExpression="FIRST_NAME"
/>
<asp:BoundField
DataField="LAST_NAME" HeaderText
="SobreNome" SortExpression="LAST_NAME"
/>
<asp:BoundField
DataField="SALARY"
HeaderText="Salario"
SortExpression="SALARY"
/>
<asp:CommandField
ShowSelectButton="True" />
</Columns>
</asp:GridView >
Até agora tudo muito simples, não é mesmo. Agora vamos ao codigo para recuperar estes valores nos seus eventos.
Eu vou utilizar um evento bem simples, o SelectedIndexChanging, mas você pode usar em outros eventos da Grid, o segredo esta em recuperar o
indice da linha que você deseja recuperar.
O codigo abaixo exemplifica como recuperar este valor:
Label1.Text = "Voce selecionou " + GridView1.DataKeys[e.NewSelectedIndex][0].ToString();
Explicando o codigo, apenas utilizei o indice e.NewSelectedIndex para selecionar a chave da linha selecionada e assim recuperar o
valor da chave zero, lembrando que se você utilizar mais de uma chave, basta passar os indices de acordo com o desejado, a partir do zero.
Bom, é tudo muito facil de se usar,
mas você ainda pode se perguntar, para que adicionar valores ao DataNameKeys, se eu posso fazer o mesmo colocando um campo na minha Grid, e a
resposta é simples. Quando temos Grids muito grandes e precisamos de um codigo que apenas é utilizado como chave no banco e não tem
interesse nenhum para o usuário, não precisamos renderizar isto na tela, o que torna tudo mais legivel para nosso cliente, que pode
visualizar apenas o que é interessante para ele.
Bom, espero que isso ajude vocês, para eu sempre foi util. Acesse meu blog para um feedback
http://altieripereira.blogspot.com ;) até mais