您的位置:首页 > 编程语言 > ASP

ASP.NET实用分页代码

2011-10-05 00:38 411 查看
/// <summary>
/// 获得页数
/// </summary>
/// <param name="DataItemCount">总共的数据条数</param>
/// <param name="PageSize">每页的数据条数</param>
/// <returns>返回页数</returns>
public static int GetPageCount(int DataItemCount, int PageSize)
{
int PageCount;
PageCount = (DataItemCount % PageSize == 0) ? DataItemCount / PageSize : DataItemCount / PageSize+1;
return PageCount;
}
/// <summary>
/// 分页方法1
/// </summary>
/// <param name="CurrentPage">当前页</param>
/// <param name="DataItemCount">信息总条数(比如文章数量)</param>
/// <param name="LinksCount">每页显示的链接数</param>
/// <returns>返回字符串</returns>
public static string PagingMethod1(int CurrentPage, int DataItemCount,int PageSize, int LinksCount,string Adds)
{
int PageCount = GetPageCount(DataItemCount, PageSize);
if (CurrentPage <= 0)
{
CurrentPage = 1;

}
else if (CurrentPage > PageCount)
{
CurrentPage = PageCount;
}

//minpage 和maxpage值的判断

if (PageCount <= LinksCount) //当 页数大于每页显示的连接数时
{
MinPage = 1;
MaxPage = PageCount;
}

else if (PageCount > LinksCount) //当页数小于每页显示的连接数时
{
if (CurrentPage < LinksCount / 2)
{
MaxPage = LinksCount;
if ((CurrentPage - LinksCount / 2) < 1)
{
MinPage = 1;

}
else
{
MinPage = CurrentPage - LinksCount / 2;

}

}
else
{
MinPage = CurrentPage - LinksCount / 2 + 1;
if ((CurrentPage + (LinksCount / 2)) > PageCount)
MaxPage = PageCount;
else
MaxPage = CurrentPage + LinksCount / 2;

}

}

StringBuilder Link = new StringBuilder();
if (MinPage > 1)//如果链接字符串里没有"首页"的时候
Link.Append("<a href=\"?CurrentPage=1"+Adds+"\">1...</a> ");

for (int i = MinPage; i <= MaxPage; i++)
{
if (i == CurrentPage)
Link.Append("<a href=\"?CurrentPage=" + i.ToString() +Adds+ "\">[" + i.ToString() + "]</a> ");
else
Link.Append("<a href=\"?CurrentPage=" + i.ToString() + Adds+"\">" + i.ToString() + "</a> ");
}
if (MaxPage < PageCount)//如果链接字符串里没有"最后一页"的时候
Link.Append("<a href=\"?CurrentPage=" + PageCount.ToString() + Adds + "\">..."+ PageCount.ToString()+"</a> ");
return Link.ToString();
}
结果生成类似于这样的字符串:
1...

89
90
91
92
[93]
94
95
96
97
98
...101
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp.net string