quarta-feira, 18 de setembro de 2013

Paginar um GridView no ASP.NET - C#

É muito raro um grid que não necessita de uma paginação, vou mostrar como é simples fazer este processo. O ideal é já ter um gridview pronto e preenchido com dados. Bom vou arrastar um GridView para meu 


WebForm. Neste ponto meu HTML esta assim:
<asp:GridView ID="GridView1" runat="server">
        </asp:GridView>

Vou mudar algumas informações nas propriedades, vamos alterar:
Opções da Paginação:
AllowPaging="True"
ShowFooter="True"
PageSize="5"

Opção para não gerar as colunas de forma Automática::
AutoGenerateColumns="False"

Nosso HTML ficará desta forma:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
            AutoGenerateColumns="False" PageSize="5" ShowFooter="True">
        </asp:GridView>

Vou popular com uma tabela que eu tenho em meu banco de dados.

Meu HTML ficará desta forma (com as colunas e um tema):

        <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
            AutoGenerateColumns="False" PageSize="5" ShowFooter="True"
            BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px"
            CellPadding="4">
            <Columns>
                <asp:BoundField DataField="IDCATEGORIA" HeaderText="ID" />
                <asp:BoundField DataField="NMCATEGORIA" HeaderText ="Nome da Categoria" />
                <asp:BoundField DataField ="ATIVO" HeaderText ="Situação" />
            </Columns>
            <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
            <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
            <RowStyle BackColor="White" ForeColor="#330099" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
            <SortedAscendingCellStyle BackColor="#FEFCEB" />
            <SortedAscendingHeaderStyle BackColor="#AF0101" />
            <SortedDescendingCellStyle BackColor="#F6F0C0" />
            <SortedDescendingHeaderStyle BackColor="#7E0000" />
        </asp:GridView>

Está pronto? Quase, agora vamos ao evento de paginação, no seu GridView habilite o evento PageIndexChanging.
Seu código .cs ficará assim:
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        carregaGrid();
    }

Bons estudos

2 comentários:

  1. O que significa esse "carregaGrid();"... Fica como errado.

    ResponderExcluir
    Respostas
    1. Olá, este carregaGrid() é a class onde esta minha conexão com o banco de dados e onde preencho o mesmo.

      aqui você terá mais detalhes: http://www.edgaresteves.com.br/2013/10/populando-gridview-c.html

      duvidas me avise!

      abs

      Excluir