No fundo o que queria era tornar as colunas de uma gridview visiveis ou invisiveis consoante alguns critérios... acontece que não dá para por código nos templatefields apenas nos controladores dentro deles porque não estão com bind.
Bem... pesquisei pesquisei... encontrei algumas soluções:
http://forums.asp.net/t/1232504.aspx/1
Bem além de detestar colocar constantes sem significado no código... algo como GirdView1.Columns.item(13), como é que alguém sabe o que é o 13? E se alguém mudar a ordem das colunas? No meu caso nem daria porque o nº de colunas iria variar.
Experimentei fazer o seguinte:
Colocar no templateField um atributo AccessibleHeaderText(Gets or sets text that is rendered as the AbbreviatedText property value in some controls. (Inherited fromDataControlField.)) pode ser a solução, para mim foi. Em termos de html traduz-se em abbr:
<th abbr="exemploColuna" scope="col">
Usando o evento da GridView dataBinding pode-se fazer o seguinte:
Dim column As DataControlField
For Each column In GridView1.Columns
If (column.AccessibleHeaderText = "exemploColuna") Then
column.Visible = validarCondicoes()
End If
Next
Subscrever:
Enviar feedback (Atom)
Sem comentários:
Enviar um comentário