Pergunta

É possível inserir informações no pager do gridview, como "Mostrando 10 de 55 itens (você está na página 3)" e vincular essas informações de acordo com as propriedades reais PageCount e PageSize?

Só consigo pensar em fazer isso fora do pager, mesmo fora do GridView.

Foi útil?

Solução

Você pode usar a propriedade PagerTempate:

<asp:GridView Id="MyGridView" runat="server" AllowPaging="true">

<PagerTemplate>

      <asp:LinkButton CommandName="Page" CommandArgument="First" ID="lbFirst" runat="server">First</asp:LinkButton>

      <asp:LinkButton CommandName="Page" CommandArgument="Prev" ID="lbPrev" runat="server">&lt;</asp:LinkButton>

      [Items <%= MyGridView.PageIndex * MyGridView.PageSize %> - <%= MyGridView.PageIndex * MyGridView.PageSize + MyGridView.PageSize - 1 %>]

      <asp:LinkButton CommandName="Page" CommandArgument="Next" ID="lbNext" runat="server">&gt;</asp:LinkButton>

      <asp:LinkButton CommandName="Page" CommandArgument="Last" ID="lbLast" runat="server">&gt;&gt;</asp:LinkButton>          

</PagerTemplate>

...


Você também pode criar seu Griview personalizado, que herda do Griview padrão.Então você pode substituir o InitializePager-método:

protected override void InitializePager(GridViewRow row, int columnSpan, PagedDataSource pagedDataSource)
    {

            TableCell pagerCell = new TableCell();
            pagerCell.ColumnSpan = columnSpan;

            LinkButton linkFirst = new LinkButton();
            linkFirst.ToolTip = "Go to first page";
            linkFirst.CommandName = "Page";
            linkFirst.CommandArgument = "First";

            pagerCell.Controls.Add(linkFirst);

            row.Cells.Add(pagerCell);
    }

Acabei de colar alguns pedaços do meu código aqui, então não sei se esse trecho de código funciona, mas deve fornecer uma boa indicação de como você pode substituir o InitializePager-método!:-)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top