2010-03-04 32 views
0

是否有可能將信息插入到gridview的尋呼機中,例如「顯示55個項目中的10個(您位於第3頁)」,並將該信息相應地綁定到實際的PageCount和PageSize屬性上?將自定義信息插入到GridView Pager可能嗎?

我只能想到在尋呼機外面,甚至在GridView外面。

回答

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 inherites。然後你就可以覆蓋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-方法! :-)