Array
(
)

Datakeys no evento rowcommand

Eiji
   - 12 mai 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á  

Pedro Otávio
   - 12 mai 2010

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

LinkButton ID="LinkButton1"
          CommandName="Busca"
          CommandArgument=''
          runat="server"

Pedro Otávio
   - 12 mai 2010

    o código sumio

Eiji
   - 13 mai 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();