.Net通用分页(可以选择页码的显示,且有中英选择)

 

using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
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;

///   <summary>
///  启程 通用分页类 www.letwego.cn 
///   </summary>
public   class  Pageing
{
    
#region  成员

    
///   <summary>
    
///  数据源 Table
    
///   </summary>
     public  DataTable dtblTableww  =   new  DataTable();

    
///   <summary>
    
///  每页记录数
    
///   </summary>
     public   int  intPageSizeww  =   20 ;

    
///   <summary>
    
///  需要获取第几页的数据,从 1 开始
    
///   </summary>
     public   int  intPageNowww  =   1 ;

    
///   <summary>
    
///  首页 显示样式
    
///   </summary>
     public   string  strFirstww  =   "" ;

    
///   <summary>
    
///  上一页 显示样式
    
///   </summary>
     public   string  strPrevww  =   "" ;

    
///   <summary>
    
///  下一页 显示样式
    
///   </summary>
     public   string  strNextww  =   "" ;

    
///   <summary>
    
///  尾页 显示样式
    
///   </summary>
     public   string  strLastww  =   "" ;

    
///   <summary>
    
///  跳转 的url链接
    
///   </summary>
     public   string  strTurnUrlww  =   "" ;

    
///   <summary>
    
///  跳转的url链接的参数前面不要加?或&
    
///   </summary>
     public   string  strOptionww  =   "" ;


    
private   string  strCountww  =   "" ;    // 共N条信息
     private   string  strPageww  =   "" ;     // 第N页/共N页    
     private   string  strTurnww;    // 跳转控件

    
#endregion

    
#region  属性

    
private   int  intRsCounww  =   0 ;     // 记录总数

    
///   <summary>
    
///  总记录数
    
///   </summary>
     public   int  GetRsCount
    {
        
get
        {
            
return   this .intRsCounww;
        }
    }

    
private   int  intPageCountww  =   0 // 总页数

    
///   <summary>
    
///  总页数
    
///   </summary>
     public   int  GetPageCount
    {
        
get
        {
            
return   this .intPageCountww;
        }
    }

    
private   string  strPageShowww  =   "" // 显示页码的字符串
     ///   <summary>
    
///  显示页码的字符串
    
///   </summary>
     public   string  GetPageShow
    {
        
get
        {
            
return   this .strPageShowww;
        }
    }

    
#endregion

    
#region  初始构造
    
///   <summary>
    
///  初始构造
    
///   </summary>
     public  Pageing()
    {
        
// 首页
        strFirstww  =   "" ;
        
// 上一页              
        strPrevww  =   "" ;
        
// 下一页               
        strNextww  =   "" ;
        
// 尾页               
        strLastww  =   "" ;
        
// 跳转控件                  
        strTurnww  =   "" ;
        
// 显示页码的字符串
        strPageShowww  =   "" ;
        
// 当前页
        intPageNowww  =  GetNumeric(GetRequest( " Page " ));

        
if  (intPageNowww  ==   0 )
        {
            intPageNowww 
=   1 ;
        }
    }
    
#endregion

    
#region  处理分页及显示页码
    
///   <summary>
    
///  分页,返回分页后的数据 Table
    
///   </summary>
    
///   <param name="bolCount"> 是否显示 共N条信息 </param>
    
///   <param name="bolPage"> 是否显示 第N页/共N页 </param>
    
///   <param name="bolFirst"> 是否显示 首页 </param>
    
///   <param name="bolLast"> 是否显示 尾页 </param>
    
///   <param name="bolTurn"> 是否显示 跳转控件 </param>
    
///   <param name="IsEnglish"> 是否 用中文显示 </param>
    
///   <returns> 返回分页后的数据 Table </returns>
     public  DataTable BeginPage( bool  bolCount,  bool  bolPage,  bool  bolFirst,  bool  bolLast,  bool  bolTurn,  bool  IsChinese)
    {

        
// 记录总数
        intRsCounww  =  dtblTableww.Rows.Count;

        
// 总页数
        intPageCountww  =  (intRsCounww  +  intPageSizeww  -   1 /  intPageSizeww;

        
// 超出最大页码
         if  (intPageNowww  >  intPageCountww)
        {
            intPageNowww 
=  intPageCountww;
        }

        
// 中文分页
         if  (IsChinese)
        {
            
// 跳转
            strTurnww  =   " <input value=' "   +  intPageNowww.ToString()  +   " ' id='txtPageGo' name='txtPageGo' type='text' style='width:25px;'><input name='btnGo' type='button' id='btnGo' value='跳转' οnclick= "" javascript:window.location.href=' "   +  strTurnUrlww  +   " ?page=' + document.getElementById('txtPageGo').value + ' "   +   " & "   +  strOptionww  +   " ' "" > " ;
            
// 共N条信息
            strCountww  =   " "   +  intRsCounww.ToString()  +   " 条信息 " ;
            
// 第N页/共N页
            strPageww  =   " "   +  intPageNowww.ToString()  +   " 页/共 "   +  intPageCountww.ToString()  +   " " ;

            
if  (strFirstww  ==   "" )
            {
                strFirstww 
=   " 首页 " ;
                strPrevww 
=   " 上一页 " ;
                strNextww 
=   " 下一页 " ;
                strLastww 
=   " 尾页 " ;
            }
        }
        
else // 英文文分页
        {
            
// 跳转
            strTurnww  =   " <input value=' "   +  intPageNowww.ToString()  +   " ' id='txtPageGo' name='txtPageGo' type='text' style='width:25px;'><input name='btnGo' type='button' id='btnGo' value='Goto' οnclick= "" javascript:window.location.href=' "   +  strTurnUrlww  +   " ?page=' + document.getElementById('txtPageGo').value + ' "   +   " & "   +  strOptionww  +   " ' "" > " ;
            
// 共N条信息
            strCountww  =   " Total  "   +  intRsCounww.ToString()  +   "  Infos " ;
            
// 第N页/共N页
            strPageww  =   "   "   +  intPageNowww.ToString()  +   " / "   +  intPageCountww.ToString()  +   "   " ;

            
if  (strFirstww  ==   "" )
            {
                strFirstww 
=   "  First  " ;
                strPrevww 
=   "  Previous  " ;
                strNextww 
=   "  Next  " ;
                strLastww 
=   "  Last  " ;
            }
        }


        DataTable MyTable;

        
int  intGetFirstRs  =   0 ; // 获取本页数据的开始下标
         int  intGetLastRs  =   0 ; // 获取本页数据的结束下标

        
string  strFirstww2;
        
string  strPrevww2;
        
string  strNextww2;
        
string  strLastww2;


        
// 没有记录
         if  (intRsCounww  <=   0 )
        {
            strPageShowww 
=  strCountww;
            MyTable 
=  dtblTableww;
        }
        
// 有记录
         else
        {
            
// 只有一页
             if  (intPageCountww  <=   1 )
            {
                strPageShowww 
=  strCountww  +   " &nbsp;&nbsp; "   +  strPageww;
                MyTable 
=  dtblTableww;
            }
            
// 不止一页
             else
            {
                
// 第一页
                 if  (intPageNowww  ==   1 )
                {
                    strFirstww2 
=  strFirstww;
                    strPrevww2 
=  strPrevww;
                }
                
else
                {
                    strFirstww2 
=   " <a href= """   +  strTurnUrlww  +   " ?page=1 "   +   " & "   +  strOptionww  +   """ > "   +  strFirstww  +   " </a> " ;
                    strPrevww2 
=   " <a href= """   +  strTurnUrlww  +   " ?page= "   +  Convert.ToString(intPageNowww  -   1 +   " & "   +  strOptionww  +   """ > "   +  strPrevww  +   " </a> " ;
                }

                
// 最后一页
                 if  (intPageNowww  ==  intPageCountww)
                {
                    strNextww2 
=  strNextww;
                    strLastww2 
=  strLastww;
                }
                
else
                {
                    strNextww2 
=   " <a href= """   +  strTurnUrlww  +   " ?page= "   +  Convert.ToString(intPageNowww  +   1 +   " & "   +  strOptionww  +   """ > "   +  strNextww  +   " </a> " ;
                    strLastww2 
=   " <a href= """   +  strTurnUrlww  +   " ?page= "   +  intPageCountww  +   " & "   +  strOptionww  +   """ > "   +  strLastww  +   " </a> " ;
                }

                
// ----处理显示页码-----------
                 if  (bolCount  ==   true ) // 共N条信息
                {
                    strPageShowww 
=  strPageShowww  +   " &nbsp;&nbsp; "   +  strCountww;
                }
                
if  (bolPage  ==   true ) // 第N页/共N页
                {
                    strPageShowww 
=  strPageShowww  +   " &nbsp;&nbsp; "   +  strPageww;
                }
                
if  (bolFirst  ==   true // 首页
                {
                    strPageShowww 
=  strPageShowww  +   " &nbsp;&nbsp; "   +  strFirstww2;
                }
                strPageShowww 
=  strPageShowww  +   " &nbsp;&nbsp; "   +  strPrevww2; // 上一页
                strPageShowww  =  strPageShowww  +   " &nbsp;&nbsp; "   +  strNextww2; // 下一页
                 if  (bolLast  ==   true ) // 尾页
                {
                    strPageShowww 
=  strPageShowww  +   " &nbsp;&nbsp; "   +  strLastww2;
                }
                
if  (bolTurn  ==   true ) // 跳转控件
                {
                    strPageShowww 
=  strPageShowww  +   " &nbsp;&nbsp; "   +  strTurnww;
                }


                
// ----处理返回数据-----------
                intGetFirstRs  =  (intPageNowww  -   1 *  intPageSizeww;
                intGetLastRs 
=  intPageNowww  *  intPageSizeww  -   1 ;

                
// 获取结束数据下标大于总记录数时
                 if  (intGetLastRs  >=  intRsCounww)
                {
                    intGetLastRs 
=  intRsCounww  -   1 ;
                }

                
// 循环获取数据
                MyTable  =  dtblTableww.Clone();
                
for  ( int  I  =  intGetFirstRs; I  <=  intGetLastRs; I ++ )
                {
                    DataRow MyRow 
=  dtblTableww.Rows[I];
                    MyTable.ImportRow(MyRow);
                }
            }
        }
        
return  MyTable;
    }
    
#endregion


    
#region  将字符串转换成整数
    
///   <summary>
    
///  将字符串转换成整数
    
///   </summary>
    
///   <param name="strValue"> 将字符传转换成整数 </param>
    
///   <returns> int </returns>
     private   int  GetNumeric( string  strValue)
    {

        
int  IReturn;

        
if  (strValue  ==   null )
        {
            IReturn 
=   0 ;
            
return  IReturn;
        }
        
try
        {
            IReturn 
=  Convert.ToInt32(strValue);
        }
        
catch
        {
            IReturn 
=   0 ;
        }
        
return  IReturn;
    }
    
#endregion

    
#region  获取Request值
    
///   <summary>
    
///  获取Request值
    
///   </summary>
    
///   <param name="strRequestName"> Request名称 </param>
    
///   <returns> null则为空 </returns>
     private   string  GetRequest( string  strRequestName)
    {

        
if  (HttpContext.Current.Request[ ""   +  strRequestName  +   "" !=   null )
        {
            
return  HttpContext.Current.Request[ ""   +  strRequestName  +   "" ];
        }
        
else
        {
            
return   "" ;
        }
    }
    
#endregion


    
#region  --------------------------------调用实例--------------------------
    
/// //  <summary>
    
/// // 调用实例
    
/// //  </summary>
     // protected void BindData()
    
// {
    
//     Student MyStudent = new Student();

    
//     DataTable MyDataTable = MyStudent.GetList("LIST", null);

    
//     Pageing MyPageing = new Pageing();
    
//     MyPageing.dtblTableww = MyDataTable; // 数据源
    
//     MyPageing.intPageSizeww = 4; // 每页显示多少条
    
//     MyPageing.strTurnUrlww = "MyRepeater.aspx"; // 跳转页面
    
//     MyPageing.strOptionww = "DoWhat=List"; // 跳转页面带的所有参数

    
//      // 获取当前页数据
    
//     this.DataList1.DataSource = MyPageing.BeginPage(true, true, true, true, true, false);
    
//      // 获取当前页分页显示
    
//     this.Label1.Text = MyPageing.GetPageShow;

    
//     this.DataList1.DataBind();
    
// }
     #endregion

转载于:https://www.cnblogs.com/yangjunwl/articles/1129486.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值