2012-01-24 28 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 - 所以不,我不认为你可以开箱。 –

回答