可以将自定义信息插入GridView寻呼机?

时间:2010-03-04 16:08:13

标签: c# asp.net gridview pager

是否可以将信息插入gridview的寻呼机,例如“显示55个项目中的10个(您在第3页上)”并将该信息与实际的PageCount和PageSize属性相关联?

我只能想到在寻呼机之外进行,甚至在GridView之外。

1 个答案:

答案 0 :(得分:1)

您可以使用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>

...


您还可以制作继承自标准Griview的自定义Griview。然后,您可以覆盖InitializePager - 方法:

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);
    }

我刚刚在这里粘贴了一些代码,所以我不知道这段代码是否有效,但是它应该能够很好地说明你如何覆盖InitializePager - 方法! :-)