Datakeys no evento rowcommand

.NET

12/05/2010

Olá Senhores   Bom , vamos lá. Tenho um gridview com paginação e com um botão . Esta gridview possui dois datakeysnames.   Ao clicar no botao , preciso pegar o valor da datakey e conforme o valor , redirecionar ou bloquear o acesso a outra página.   Problema >   Qdo estou na primeira página , tudo funciona ,mas somente na primeira. Qdo acesso a segunda página e clico no dito botão , onde dispara o evento rowcommand   ... String variavel =MinhaGrid.Datakeys[indice].Values[indice do datakey].toString() switch (variavel) case "Bloqueado" ....codigo     me retorna um erro dizendo que o indice esta fora do range... Mas , para debugar , eu exibo o valor do indice e está tudo ok... exemplo ,,,,qdo mudo para a segunda pagina a primeira linha me retorna indice "0" ,,isto é certo né? para capturar o indice da linha uso int indice - Convert.int32(e.commandarguments)     Bom ,não estou com o Visual Studio , portanto algum trecho do comando esteja errado , mas o problema não está no código e sim em alguma definição do indice..na hora do rowcommand...   Alguém pode me ajudar...Já perdi um tempinho...por isso estou postando..grato desde já  
Eiji

Eiji

Curtidas 0

Respostas

Pedro Maitan

Pedro Maitan

12/05/2010

  Uma forma de pegar o valor da linha é adicionando o valor no CommandArgument, Ficando assim.

LinkButton ID="LinkButton1"
          CommandName="Busca"
          CommandArgument=''
          runat="server"
GOSTEI 0
Pedro Maitan

Pedro Maitan

12/05/2010

    o código sumio

GOSTEI 0
Eiji

Eiji

12/05/2010

Olá , obrigado pela dica   Mas eu estou usando um command field no gridview , portanto não tenho como usar o command argument .Eu consigo resolver o problema , usando outros metodos , como por exemplo , no command databound , já estou mudanfo a cor do conteúdo da coluna que me mostra quais clientes estão bloqueados .Poderia fazer um if conforme a cor.   Mas gostaria de saber trabalha com este datakey. Pois parece ser simples ,mas não me traz valores qdo pagino . mesmo que eu coloque o valor do indice direto Ex.= if (e.CommandName == "Pedido") { //int ind = Convert.ToInt32(e.CommandArgument);   String situacao = GridBusca.DataKeys[0][1].ToString();  
GOSTEI 0
POSTAR