Ajuda - Busca - Membros - Calendário
Versão Completa: DataGrid - Pegar elemento pelo nome da coluna e não pela posição
Fórum Script Brasil > Programação & Desenvolvimento > .NET
Ynaue
Oi Pessoal,

Tem como pegar os elementos de um DataGrid pelo nome da coluna?

Pois não gosto desse jeito:
descricao.Text = e.Item.Cells(1).Text

porque se mudar a coluna de posição tenho que alterar o codigo tambem.

Obrigada!
Graymalkin
Na verdade, você deveria pegar o dado correspondente à linha selecionada, que será um objeto e não o texto diretamente de uma célula. Você pode obter isso assim:

CODE
If Grade.CurrentRow IsNot Nothing Then 'Se existir uma linha selecionada
    obj = Grade.CurrentRow.DataBoundItem
End If


Onde obj é um objeto do tipo que está sendo exibido na DataGridView. Depois disso basta obter as propriedades desejadas do objeto.

Abraços,

Graymalkin
Denis Bittencourt Muniz
Realmente, seria mais fácil usar a propriedade BoundItem.

Mas respondendo a pergunta: Não, infelizmente, já que Cells é um vetor, sendo que suporta referência apenas por índice.

Até mais!
--Ynaue --
Oi!

Mas o Datagrid não possui a metodo CurrentRow (pelo menos no 2003 com framework 1.1 )

QUOTE(Graymalkin @ 20/05/2008 - 07:45) *
Na verdade, você deveria pegar o dado correspondente à linha selecionada, que será um objeto e não o texto diretamente de uma célula. Você pode obter isso assim:

CODE
If Grade.CurrentRow IsNot Nothing Then 'Se existir uma linha selecionada
    obj = Grade.CurrentRow.DataBoundItem
End If


Onde obj é um objeto do tipo que está sendo exibido na DataGridView. Depois disso basta obter as propriedades desejadas do objeto.

Abraços,

Graymalkin

Denis Bittencourt Muniz
Isso porque o gray se referiu ao DataGridView (ou GridView), ambos presentes apartir da versão 2.0 da plataforma. Use:
CODE
If Grade.CurrentRowIndex > -1 Then
...
End If


http://msdn.microsoft.com/en-us/library/sy...id_members.aspx (documentação da grade, que já está depreciada, apartir da versão 2.0)

Até mais!
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.