GRIDVIEW - PEGAR NOME DO HEADER

EDSPICER 10/02/2011 09:53:01
#364951
Pessoal,

alguem sabe como pegar o nome do header de um gridview via code-behind?

RODRIGOFERRO 10/02/2011 10:30:41
#364962
ja tentou GridView01.Columns[0].HeaderText ??

onde:
GridView01: Nome da sua GridView
Columns[0]: Index da Coluna

Abraços
EDSPICER 10/02/2011 12:55:52
#364983
Não resolveu....

aparece a seguinte mensagem de erro:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

abs
RICART 10/02/2011 13:54:01
#364988
Bom, se vc quer clicar na coluna e pegar o texto do nome da mesma:

[txt-color=#0000f0] Private Sub DataGridView1_ColumnHeaderMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
msgbox ( [Ô]Texto da Coluna: [Ô] + DataGridView1.Columns(e.ColumnIndex).HeaderText)
msgbox ( [Ô]Nome da Coluna: [Ô] + DataGridView1.Columns(e.ColumnIndex).Name.ToString)

End Sub[/txt-color]
EDSPICER 11/02/2011 09:30:48
#365082
nao, nao....
o que quero e, que, quando fosse montado o grid, ele ja pegasse o nome da header (gridview).
Preciso que seja pego o nome da header sem precisar clicar em algo.
EDSPICER 15/02/2011 09:53:14
#365471
Consegui resolver de outra maneira.
ao gerar um datatable, eu pego o numero de colunas que preciso e crio um array e depois armazeno o nome da coluna:
aMeses(contador) = dttable.Columns(num_coluna).ColumnName
apos isso eu abro uma session e armazeno o array nela, para usar no rowdatabound do gridview.
montei um procedimento, onde pego o array que esta na session e atraves de um for pelas colunas eu monto o meu header, enquando renomeio as coluas (tambem com um for).
Private Sub monta_header(ByVal ncolunas As Integer, ByVal colInicio As Int32, ByVal totcolunas As Integer)
Dim HeaderGrid As GridView = DirectCast(nome_do_grid, GridView)
Dim HeaderGridRow As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert)
Dim aMeses() As String = CType(Session([Ô]Meses[Ô]), Array)

Dim HeaderCell As New TableCell()
HeaderCell.Text = [Ô]Texto da nova header[Ô]
HeaderCell.ColumnSpan = 27
HeaderGridRow.Cells.Add(HeaderCell)
HeaderCell.HorizontalAlign = HorizontalAlign.Center

For iCont = 1 To ncolunas
HeaderCell = New TableCell()
HeaderCell.Text = aMeses(iCont - 1)
HeaderCell.ColumnSpan = 3
HeaderCell.ForeColor = Drawing.Color.Black
HeaderCell.HorizontalAlign = HorizontalAlign.Center
HeaderGridRow.Cells.Add(HeaderCell)
HeaderCell.BackColor = IIf(iCont Mod 2 = 0, Drawing.Color.Silver, Drawing.Color.LightSkyBlue)
Next

grdDCD.Controls(0).Controls.AddAt(0, HeaderGridRow)

End Sub

rotina que vai no rowdatabound do gridview:
If e.Row.RowType.ToString().Equals([Ô]Header[Ô]) Then
For contii = 27 To iTotColumns - 1 Step 3
With e.Row.Cells(contii)
.Text = [Ô]Texto da coluna 1 alterado[Ô] [ô]Renomeia a coluna
.BackColor = IIf(iCont Mod 2 = 0, Drawing.Color.Silver, Drawing.Color.LightSkyBlue) [ô] Cor de fundo
.ForeColor = Drawing.Color.Black [ô]Cor do texto
End With
With e.Row.Cells(contii + 1)
.Text = [Ô]Texto da coluna 2 alterado[Ô]
.BackColor = IIf(iCont Mod 2 = 0, Drawing.Color.Silver, Drawing.Color.LightSkyBlue)
.ForeColor = Drawing.Color.Black
End With
With e.Row.Cells(contii + 2)
.Text = [Ô]Texto da coluna 3 alterado[Ô]
.BackColor = IIf(iCont Mod 2 = 0, Drawing.Color.Silver, Drawing.Color.LightSkyBlue)
.ForeColor = Drawing.Color.Black
End With
iCont = iCont + 1
Next

Neste caso eu preciso sempre renomear tres colunas com o mesmo texto, para fazer com uma so presica somente remover o step 3 e deixar apenas um bloco de with ... end with.

bom, nao consegui ainda pegar o nome da coluna diretamente o gridview, mas consegui uma alternativa. Tai, caso alguem se encontre em uma situacao parecida com a minha.
Tópico encerrado , respostas não são mais permitidas