zhuyi的半亩田

—— 给我一个支点,我能撬起地球!

原创 C# 数字分页收藏

新一篇: 尝试创建Web项目或打开位于URL“http ://localhost/WebApplication1”的Web 项目 | 旧一篇: 读取RSS(支持目前所有RSS版本)

             /// <summary>
             
/// 获取页码
             
/// </summary>
             
/// <param name="pageIndex">当前页的索引(第一页为0)</param>
             
/// <param name="pageCount">总页数</param>
             
/// <param name="showPageCount">显示页码数</param>
             
/// <param name="url">页码url(例:List.aspx?page=)</param>
             
/// <returns></returns>

             public static string GetPager(int pageIndex, int pageCount, int showPageCount, string url)
             
{
                 showPageCount 
= Math.Min(pageCount + 1, showPageCount);
                 pageIndex 
= Math.Max(0, pageIndex);
                 pageIndex 
= Math.Min(pageCount - 1, pageIndex);

                 
string str = "";
                 
int pcnt = 0//记录已输出的页码数
                 for (int i = pageIndex; i > pageIndex - 2; i--)
                 
{
                     
if (i == 0break;
                     pcnt
++;
                     str 
= "<a href='" + url + i.ToString() + "'>" + i.ToString() + "</a> " + str;
                 }

                 str 
+= "<b>" + Convert.ToString(pageIndex + 1+ "</b> ";
                 
for (int j = pageIndex + 2; j < pageCount + 1; j++)
                 
{
                     
if (pcnt++ == showPageCount - 1break;
                     str 
+= "<a href='" + url + j.ToString() + "'>" + j.ToString() + "</a> ";
                 }

                 
for (int k = 0; k < showPageCount - 1 - pcnt; k++)
                 
{
if (pageIndex - 2 - k < 1) break;
                     str = "<a href='" + url + Convert.ToString(pageIndex - 2 - k) + "'>" + Convert.ToString(pageIndex - 2 - k) + "</a> " + str;
                 }

                 
if (pageIndex > 0) str = "<a href='" + url + Convert.ToString(pageIndex) + "'>Prev</a> " + str;
                 
if (pageIndex < pageCount - 1) str += " <a href='" + url + Convert.ToString(pageIndex + 2+ "'>Next</a>";
                 
return str;
             }


注:该方法应配合分页存储过程使用(当然直接写sql语句也可以)。
示例:string pager = GetPager(3, 9, 5, "list.aspx?page=");
Response.Write(pager);
输出结果如下:Prev 2 3 4 5 6 Next

发表于 @ 2008年04月28日 16:28:00|评论(loading...)|编辑

新一篇: 尝试创建Web项目或打开位于URL“http ://localhost/WebApplication1”的Web 项目 | 旧一篇: 读取RSS(支持目前所有RSS版本)

评论:没有评论。

发表评论  


登录
Csdn Blog version 3.1a
Copyright © 朱乙