C#分页 访google

using System;  
using System.Data;  
using System.Configuration;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
using System.Web.UI.HtmlControls;  
using System.Text;  
  
/// <summary>  
/// Pagenumber 的摘要说明  
/// </summary>  
public static class Pagenumber  
{  
    ///   <summary>   
         ///  创建并显示分页器  
         ///   </summary>   
    public static string BuildPager(int totalRecords, int currentPage, int pageSize, int pid)  
    {  
        int alter = 4;  
        int startPage = 1;  
        int endPage = currentPage + alter;  
        int totalPages = CalculateTotalPages(totalRecords, pageSize);  
  
        if (currentPage > alter)  
        {  
            startPage = currentPage - alter;  
        }  
  
        if (endPage > totalPages)  
        {  
            endPage = totalPages;  
        }  
  
        string strTemp = @" <a href='Default.aspx?p={0}&pno={1}'>{2}</a>&nbsp; ";  
        StringBuilder sb = new StringBuilder("");  
        if (currentPage != startPage)  
        {  
            sb.Append(string.Format(strTemp, currentPage - 1, currentPage - 1, " 上一页 "));  
        }  
  
        for (int i = startPage; i <= endPage; i++)  
        {  
            if (currentPage == i)  
            {  
                sb.Append(" <font color=red> " + i + " </font>&nbsp;&nbsp; ");  
            }  
            else  
            {  
                sb.Append(string.Format(strTemp, i, i, "[" + i + "]"));  
            }  
        }  
  
        if (currentPage != endPage)  
        {  
            sb.Append(string.Format(strTemp, currentPage + 1, currentPage + 1, " 下一页 "));  
        }  
  
        return sb.ToString();  
    }  
   
          /**/ ///   <summary>   
         ///  计算总页数  
         ///   </summary>   
         ///   <param name="totalRecords"> 总记录数 </param>   
         ///   <param name="pageSize"> 每页记录数 </param>   
    public static int CalculateTotalPages(int totalRecords, int pageSize)  
    {  
        int totalPagesAvailable;  
  
        totalPagesAvailable = totalRecords / pageSize;  
  
        // 由于C#的整形除法 会把所有余数舍入为0,所以需要判断是否需要加1   
        if ((totalRecords % pageSize) > 0)  
            totalPagesAvailable++;  
  
        return totalPagesAvailable;  
    }  
}  
 
Demo2:
 
C#代码 
/**//// <summary>  
        /// 类似GOOGLE的分页函数,王传炜,资料参考http://www.phpx.com/happy/viewthread.php?tid=99280&extra=&page=2,谢谢YourEyes  
         /// </summary>  
        /// <param name="total">总记录数</param>  
        /// <param name="per">每页记录数</param>  
        /// <param name="page">当前页数</param>  
        /// <param name="query_string">Url参数</param>  
         private string pagination(int total,int per,int page,string query_string)  
         {  
             int allpage=0;  
             int next=0;  
             int pre=0;  
             int startcount=0;  
             int endcount=0;  
             string pagestr="";   
             if(page<1){page=1;}  
             //计算总页数  
            if (per != 0)  
             {  
                 allpage = (total / per);  
                 allpage = ((total % per) != 0 ? allpage + 1 : allpage);  
                 allpage = (allpage == 0 ? 1 : allpage);  
             }  
             next=page+1;  
             pre=page-1;  
           startcount=(page+5)>allpage?allpage-9:page-4;//中间页起始序号  
             //中间页终止序号  
             endcount = page<5 ? 10 : page+5;  
             if(startcount<1) {startcount=1;} //为了避免输出的时候产生负数,设置如果小于1就从序号1开始  
             if(allpage<endcount){endcount=allpage;}//页码+5的可能性就会产生最终输出序号大于总页码,那么就要将其控制在页码数之内  
             pagestr="共"+ allpage +"页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";  
             
             pagestr+=page>1 ?  "<a href=\""+ query_string + "?page=1\">首页</a>&nbsp;&nbsp;<a href=\""+ query_string +"?page="+ pre +"\">上一页</a>": "首页 上一页";  
              //中间页处理,这个增加时间复杂度,减小空间复杂度  
              for(int i=startcount;i<=endcount;i++)  
              {   
                  pagestr+=page==i?"&nbsp;&nbsp;<font color=\"#ff0000\">"+i+"</font>":"&nbsp;&nbsp;<a href=\""+ query_string +"?page="+ i +"\">"+ i +"</a>";  
              }  
              pagestr+=page!=allpage ? "&nbsp;&nbsp;<a href=\""+ query_string+"?page="+ next +"\">下一页</a>&nbsp;&nbsp;<a href=\""+ query_string +"?page="+ allpage+"\">末页</a>" : " 下一页 末页";  
  
             return pagestr;             
         }  
 

你可能感兴趣的:(C++,c,UI,Google,C#)