ASP.net中继器控件的分页,具有显示下10页的功能
本文关键字:显示 功能 10页 net 中继器 控件 分页 ASP | 更新日期: 2023-09-27 18:21:09
我正在使用一个寻呼功能来控制中继器,我修改了从以下链接中获取的脚本
http://www.dotnetfunda.com/articles/article456-custom-seo-friendly-paging-with-aspnet-repeater-or-datalist-control-.aspx
我对它进行了一定程度的修改,它运行良好寻呼现在显示为
1|2|3|4|5|6|7|8|9|10
分页功能运行良好,但我需要修改脚本,以便在用户点击下一个10链接以及Last和first Previous功能后,它将显示前5页和下5页
基于上述场景的示例
第一个-上一个1|2|3|4|5下一个-最后
如果我点击Next5链接,那么它应该显示
第一个-5上一个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 + " ");
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 + " ");
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 =@LangID) 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 =@LangID
END
END
我必须修改相同的代码才能使用此功能。我试了几个小时,但没能把它做好。非常感谢在这方面的任何帮助
我不知道为什么我会因为问这种问题而被给予-ve
这里有一个例子,它扩展了中继器,使其与另一个名为"DataPager"的内置控件一起工作,该控件可以执行您想要的所有操作。
http://www.codeproject.com/Articles/45163/Extend-Repeater-to-support-DataPager
还有另一个http://www.dot4pro.com/extend-repeater-support-datapager.html
关于如何使用它的一些例子http://www.c-sharpcorner.com/uploadfile/nipuntomar/datapager-in-Asp-Net-3-5/