2012-01-24 26 views
0

10頁我使用中繼器控制尋呼功能,我已經修改,從下面的鏈接採取了腳本尋呼與功能ASP.net Repeater控件來顯示下

http://www.dotnetfunda.com/articles/article456-custom-seo-friendly-paging-with-aspnet-repeater-or-datalist-control-.aspx

我把它修飾成一定程度上,它工作正常 和尋呼現在顯示爲

1 | 2 | 3 | | 5 | 6 | 7 | 8 | 9 | 10

分頁功能工作正常,但我需要修改腳本,使基於上述場景

實例一旦用戶點擊未來10鏈接與姓氏和以前的功能以及它會顯示前5頁和未來5頁

第一個 - 上一個 1 | 2 | 3 | 4 | 5 Next5 - 最後

如果我打的Next5鏈接,那麼它應該顯示

首先 - 5Previous 6 | 7 | 8 | 9 | 10 下一頁 - 最後

下面是函數的代碼和我的存儲過程

private string GetPagingDone(int thisPageNo, int totalCount, int pageSize, string pageName, int LangID, string extraQstringToAdd) 
{ 
    int pageno = 0; 
    int start = 0; 
    int loop = totalCount/pageSize; 
    int ilimit = 5; 
    int remainder = totalCount % pageSize; 
    StringBuilder strB = new StringBuilder("", 500); 
    for (int i = 0; i < loop; i++) 
    { 
     pageno = i + 1; 
     if (pageno.Equals(thisPageNo)) 
      strB.Append(pageno + "&nbsp; "); 
     else 
      strB.Append("<a href=\"" + pageName + "?start=" + start + "&page=" + pageno +"&PageID=" + Request["PageId"] + "&Language=" + Request["Language"] + "\">" + pageno + "</a> "); 
     if (i + 1 == loop) 
     { strB.Append(" "); } 
     else 
     { strB.Append(" | "); } 
     start += pageSize; 
    } 
    if (remainder > 0) 
    { 
     pageno++; 
     if (pageno.Equals(thisPageNo)) 
      strB.Append("" + pageno + "&nbsp; "); 
     else 
      strB.Append("<a href=\"" + pageName + "?start=" + start + "&page=" + pageno + "&PageID=" + Request["PageId"] + "&Language=" + Request["Language"] + "\">" + pageno + "</a> "); 
    } 

    return strB.ToString() + ""; 
} 

ALTER PROCEDURE [dbo].[usp_ArticleListPaging] 
     @startRowIndex int, 
     @pageSize int, 
     @LangID int, 
     @totalCount int output 
    AS 
    BEGIN 
     SET NOCOUNT ON; 
     SET @totalCount = 0 
     SET @startRowIndex = @startRowIndex + 1 
     BEGIN 
      SELECT * FROM (Select art_Articles.*, ROW_NUMBER() OVER (ORDER BY art_Articles.ArticlePublishDate DESC) as RowNum 
      FROM art_Articles WHERE art_Articles.ArticleActive = 1 AND art_Articles.ArticleVisible = 1 AND LanguageID [email protected]) as ArticleList 
      WHERE RowNum BETWEEN @startRowIndex AND (@startRowIndex + @pageSize) - 1 ORDER BY ArticlePublishDate DESC 
      SELECT @totalCount = Count(ArticleID) FROM art_Articles WHERE art_Articles.ArticleActive = 1 AND art_Articles.ArticleVisible = 1 AND LanguageID [email protected] 
     END 
    END 

我要修改相同的代碼來使用此功能。我試了幾個小時,但沒有把握好。在這個任何幫助,高度讚賞

我不知道爲什麼我被賦予-ve詢問這樣的問題

+0

我不得不改變同一代碼的一些例子。我一直在試圖修改此腳本,因爲昨天我不斷陷入其中一點。我只是提到我是編程新手,並沒有使用分頁控件的豐富經驗。 – Learning

+0

不能你使用asp:DataPager控制這個..所有這個腳本處理 – Murtaza

+0

@Murtaza一個快速的谷歌顯示有重寫使重複使用DataPager - 所以不,我不認爲你可以開箱。 –

回答