<asp:GridView ID="grdItens" runat="server" AutoGenerateColumns="False" AllowPaging="True" EnableModelValidation="True"> <Columns> <asp:BoundField DataField="Campo1" HeaderText="Campo1" /> <asp:BoundField DataField="Campo2" HeaderText="Campo2" /> <asp:BoundField DataField="Campo3" HeaderText="Campo3" /> </Columns> <HeaderStyle Font-Size="Smaller" /> <PagerStyle Font-Size="Smaller" /> <RowStyle Font-Size="Smaller" /> </asp:GridView> |
Bom, na listagem 1.1 mostrei apenas um GridView simples e com preparado para paginação de dados. Agora preciso colocar a quantidade e preparar os links de próximo, anterior e último com imagem. (Listagem 1.2)
<asp:GridView ID="grdItens" runat="server" AutoGenerateColumns="False" AllowPaging="True" onpageindexchanging="grdItens_PageIndexChanging" EnableModelValidation="True"> <Columns> <asp:BoundField DataField="Campo1" HeaderText="Campo1" /> <asp:BoundField DataField="Campo2" HeaderText="Campo2" /> <asp:BoundField DataField="Campo3" HeaderText="Campo3" /> </Columns> <HeaderStyle Font-Size="Smaller" /> <PagerStyle Font-Size="Smaller" /> <RowStyle Font-Size="Smaller" /> <PagerSettings Position="Bottom" Mode="NextPreviousFirstLast" PreviousPageText="<img src='imagens/seta-esquerda.png' border='0' title='Página Anterior'/>" NextPageText="<img src='imagens/seta-direita.png' border='0' title='Próxima Página'/>" FirstPageText="<img src='imagens/seta-esquerda-ultima.png' border='0' title='Primeira Página'/>" LastPageText="<img src='imagens/seta-direita-ultima.png' border='0' title='Última Página'/>" PageButtonCount="15" /> </asp:GridView> |
Note que na propriedade <PagerSettings> existem as imagens de seta-esquerda, seta-direita e tudo mais. No final da propriedade, coloquei o PageButtonCount=15 para contar de 15 em 15.
Lembre-se que até agora não fizemos a parte do código C#. Isso foi apenas HTML da página. Nas propriedades do grid, tenho o código “onpageindexchanging="grdItens_PageIndexChanging" que cria o método responsável para fazer a paginação.
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { preencherGrid(); } }
private void preecherGrid() { ClasseBRL _brl = new ClasseBRL(); DataTable dtTable = _brl.ConsultarDados(); grdItens.DataSource = dtTable; grdItens.DataBind(); } |
Passando para o método de paginação do grid, basta chamar o preencherGrid para preencher o grid, depois de colocar um novo índex. Veja o exemplo. Listagem 1.4.
protected void grdItens_PageIndexChanging(object sender, GridViewPageEventArgs e) { grdItens.PageIndex = e.NewPageIndex; preecherGrid(); } |
