2015-05-09 50 views
1

http://www.aspsnippets.com/Articles/Custom-Paging-in-ASPNet-GridView-using-SQL-Server-Stored-Procedure.aspx限制頁碼上顯示自定義分頁

基於上面的教程中,我能夠在我的GridView中創建自定義的頁面,但我想限制頁碼在頁面上顯示。示例當我有10,000個記錄要以每頁10行顯示設置時,頁面鏈接將加載1 - 1000頁不理想的頁面鏈接。

我怎樣才能使輸出是這樣的:

首先1 2 3 4 5 6 7 8 9 10最後

,並自動調整

首先2 3 4 5 6 7 8 9 10 11最後

等等。

下面是一個創建的所有頁面顯示設置

private void PopulatePager(int recordCount, int currentPage) 
{ 
    double dblPageCount = (double)((decimal)recordCount/decimal.Parse(ddlPageSize.SelectedValue)); 
    int pageCount = (int)Math.Ceiling(dblPageCount); 
    List<ListItem> pages = new List<ListItem>(); 
    if (pageCount > 0) 
    { 
     pages.Add(new ListItem("First", "1", currentPage > 1)); 
     for (int i = 1; i <= pageCount; i++) 
     { 
      pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage)); 
     } 
     pages.Add(new ListItem("Last", pageCount.ToString(), currentPage < pageCount)); 
    } 
    rptPager.DataSource = pages; 
    rptPager.DataBind(); 
} 

回答

5

改變你,如果塊這個

代碼
if (pageCount > 0) 
{ 
    int showMax = 10; 
    int startPage; 
    int endPage; 
    if (pageCount <= showMax) 
    { 
     startPage = 1; 
     endPage = pageCount; 
    } 
    else 
    { 
     startPage = currentPage; 
     endPage = currentPage + showMax - 1; 
    } 

    pages.Add(new ListItem("First", "1", currentPage > 1)); 

    for (int i = startPage; i <= endPage; i++) 
    { 
     pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage)); 
    } 

    pages.Add(new ListItem("Last", pageCount.ToString(), currentPage < pageCount)); 
} 

根據需要更改showMax。

+0

這工作!謝謝:)我怎樣才能包括:分頁之前的結果1-10(記錄總數)? – rickyProgrammer

+1

您可以在rptPager(指您的鏈接)尋呼機控制之前添加一個asp:Label,並根據您當前的頁面設置此標籤的文本。類似於「結果」+((currentPage - 1)* pageSize,+ 1)+「 - 」+ Math.Min(currentPage * pageSize,recordCount)+「of」+ recordCount – potatopeelings

+0

但是記錄總數如何?例如:1-10的10,000。無論如何,謝謝,因爲你已經回答了原始問題 – rickyProgrammer

0

使用此

Set Pager setting property

更多信息使用GridView Paging Sample in ASP.NET

+0

這不適用,因爲我的數據源直接來自存儲過程,它不支持服務器端分頁或默認分頁,這就是我選擇自定義分頁的原因。 – rickyProgrammer