.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


    
获取Request值#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


    
简要说明#region 简要说明
    
//.Net通用分页(可以选择页码的显示样式,且有中英选择),自己写的,还不完善,请朋友们多多指点.
    
//大概思路是:根据传进来的DataTable,每页显示多少条记录,当前要显示第几页(从Request中获得),
    
//来获取当前页要显示的数据(比如DataTable共有123条记录,每页显示10条,第2页,则取DataTable的Rows10~19),
    
//再根据其它传进来的参数设置分页及显示的样式等.
    
//当然,可能这种方法的效率等某些方面可能不好,只是个例子,可以根据自己的应用修改.
    
//效果图:https://images.cnblogs.com/cnblogs_com/84ww/128905/r_page.GIF
    #endregion



}

转载于:https://www.cnblogs.com/84ww/archive/2008/03/30/1129429.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值