ASP NET - GridView

Características do controle GridView

Se existe um controle de exibição de dados que você deve conhecer é o Gridview.

Além da facilidade de seu uso ele permite realizar nativamente a paginação dos registros exibidos em cada página com o mínimo de código.

Em matéria de estilo aí pegou o ponto forte dele. Totalmente personalizável em detalhes como se estiver ordenado em ordem crescente pela coluna A exiba os headers da tabela em Azul e se for por ordem decrescente exiba os headers com fundo pink.


IDnomedtNasc
1Syed E Abbas21/08/1924 00:00:00
2Catherine R. Abel27/12/1988 00:00:00
3Kim B Abercrombie10/02/1932 00:00:00
4Hazem E Abolrous23/10/1984 00:00:00
5Pilar G Ackerman22/08/1991 00:00:00
12345678910

Código

                    <asp:GridView
                        ID="GridView1" runat="server" AllowPaging="True"
                        BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4"
                        ForeColor="#333333" EnableModelValidation="True"
                        OnPageIndexChanging="GridView1_PageIndexChanging"
                        AutoGenerateColumns="true"
                        GridLines="Both" PageSize="5">
                        <AlternatingRowStyle BackColor="White" />
                        <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                        <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
                        <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
                        <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
                        <SortedAscendingCellStyle BackColor="#FDF5AC" />
                        <SortedAscendingHeaderStyle BackColor="#4D0000" />
                        <SortedDescendingCellStyle BackColor="#FCF6C0" />
                        <SortedDescendingHeaderStyle BackColor="#820000" />
                    </asp:GridView>

Parâmetros

O parâmetro AllowPaging="True" define que desejamos paginar a exibição de registros neste controle

O parâmetro PageSize=5 define quantos registros serão exibidos por página (no exemplo = 5 ).

O parâmetro OnPageIndexChanging="GridView1_PageIndexChanging" define a função que irá tratar a mudança de página.
O cógido da função é o seguinte :
    Protected Sub GridView1_PageIndexChanging(sender As Object, e As GridViewPageEventArgs)
        GridView1.PageIndex = e.NewPageIndex
        BindGridView()
    End Sub

A função BindGridView() é a função que carrega os dados no Gridview. Apesar do processo ser praticamente automatico precisamos criar esta função porque ela é chamada tanto na carga :
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then
            BindGridView()
        End If
    End Sub

Como na mudança de página (código exibido acima).

A função que faz o a carga do gridview com os dados (binding - ligando) é a seguinte :
    Protected Sub BindGridView()
        Dim sql As String = ""
        Dim ds As DataSet

        DefStrConexao() 'definindo o string de conexão
        sql = "select * from pessoas limit 50"
        ds = BDDS(sql)

        If System.Web.HttpContext.Current.Session("erro") = "" Then
            GridView1.DataSource = ds
            GridView1.DataBind()
        Else
            lblMsg.Text = System.Web.HttpContext.Current.Session("erro")
        End If

    End Sub

O parâmetro AutoGenerateColumns="true" define que o header das colunas deve ser trazido do nome dos campos obtidos na pesquisa. Muito prático.

O parâmetro GridLines="Both" informa que quero colocar as linhas de grade tanto vertical, horizontal ou nenhuma (none). Contudo o estilo da tabela que é como o GridView é enviado ao cliente é influenciado pelo padrão do bootstrap que dá uma maqueadinha nele. Não ficou mal mas a gente perde horas na estilização desse componente. Muitos detalhes personalizáveis.

Quanto aos estilos menciono seu uso:
1-HeaderStyle : Estilo do cabeçalho
2-FooterStyle : Estilo do rodapé.
3-PagerStyle : É o estilo da área onde os dados são exibidos.
4-RowStyle : É o estilo das linhas da tabela onde os dados são exibidos.
5-SelectedRowStyle : É o estilo da linha selecionada (quando clica com mouse).
6-SortedAscendingCellStyle : É o estilo quando a tabela esta ordenada em ordem ascendente.
7-SortedDescendingCellStyle : É o estilo da coluna de dados quando a tabela está ordenada em ordem decrescente.
8-SortedAscendingHeaderStyle : É o estilo do cabeçalho quando a tabela esta ordenada em ordem ascendente.
9-SortedDescendingHeaderStyle : É o estilo do cabeçalho quando a tabela está ordenada emordem decrescente.

A ordem da exibição do registro é feita pela própria cláusula SQL (DESC, ASC) e a paginação funciona da mesma maneira mesmo com a mudança da ordem dos registros.