Array
(
)

Pegar Dados do GridView

Pauloroger
   - 29 set 2008

Pessoal, to insistindo nisso porque estou precisando muito:

Tenho alguns Edits, no meu WebForm, e tenho um GridView, onde tem alguns registros, como ID, NOME, DATA_NASC, ASILO e gostaria de clicar no item SELECIONAR do GridView e aparecer os dados nos Edits acima, no Delphi 2006 eu fazia assim:

procedure TWebForm1.gridIdosos_ItemCommand(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
begin
txtID.Text := e.Item.Cells.Item[0].Text;
txtNome.Text := e.Item.Cells.Item[1].Text;
txtDataNasc.Text := e.Item.Cells.Item[2].Text;
ddlAsilo.SelectedValue := e.Item.Cells.Item[5].Text;
btnAlterar.Enabled := True;
btnIncluir.Enabled := False;
end;

Porem no Delphi 2007, não consigo isso, eu sei que é duplicidade de pergunta, mas estou precisando muito dessa dica.

Valeu


Tiagom
   - 31 mar 2009

Boa tarde Paulo, conseguiu alguma solução pra sua pergunta? Estou precisando também. Uso Delphi.NET 2007


Pauloroger
   - 02 abr 2009

Nada, não conseguir resolver isso, que eu fiz, cambiarra, mas to rolando

Na minha pagina, coloquei um DataGrid, e estou usando como estivesse no BDS2006. rsrsrsrsr


Tiagom
   - 03 abr 2009

Hehe, Vou ver o que consigo por aqui. Vlw Paulo.


Pauloroger
   - 15 abr 2009

- Recuperar Valores

Tive alguns problemas para recuperar os valores de uma gridview no começo porque quando você define que a coluna código, por exemplo, é visible=false, ele não permite pegar o conteúdo daquela coluna facilmente, mas com DataKeys é tranquilo, os códigos abaixo:

GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Item[0].ToString;

ou

GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[0].ToString;

Na gridview precisa ser preenchido a propriedade DataKeysNames, pode ir direto no código ou configurar na paleta propriedades mesmo, coloque o nome do campo que busca no BD, se quiser pode colocar mais de um(array), desde que separe com vírgula, se colocar mais de um, muda o valor -> Values[array], por exemplo, se quiser pegar o valor NOME, ficaria assim:

Ex: datakeynames=´CODIGO, NOME´
GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[0].ToString; //pega o código
GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[1].ToString; //pega o nome

O evento para pegar os valores é o RowCommand, fica no mesmo estilo que datagrid, coloca um buttonfield e atribui um commandname pra ele, no evento rowcommand testa, if e.commandname = ´xxx´ then begin...

Fonte: http://geeksnet.blogspot.com/2008/09/ol-todos-este-tutorial-sobre-gridview.html


Tiagom
   - 15 abr 2009

Paulo, obrigado pelas dicas. O que eu queria era pegar o campo código da linha selecionada e jogar esse campo em uma variavel de sessão, essa variavel de sessão é utilizada em uma página que é carregada antes da tela de busca. Então eu fiz o seguinte, no evento SelectedIndexChanged, coloquei assim:
Session[´COD_LOCAL´]:= Gridview1.SelectedDataKey.Values[0].ToString;
response.Redirect(´Pagina_Anterior.aspx´);

e no evento Onload da página anterior, coloquei em uma estrutura de If um Try para verificar a variavel de sessão. Apanhei um pouco do Postback, mas agora ta funcionando legal. Valeu mesmo Paulo