sexta-feira, 18 de janeiro de 2013

Pesquisar Colunas com TemplateFields ASP .NET Framework 2.0

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:



Dim column As DataControlField
       
        For Each column In GridView1.Columns
            If (column.AccessibleHeaderText = "exemploColuna") Then
               
                column.Visible = validarCondicoes()
     
            End If
               
        Next

Sem comentários: