zoukankan      html  css  js  c++  java
  • 自家用的DataReapter分页代码


    还没写完善的东西。所以直接在里面修改参数。
    使用时

    DataTabel dt =...
    PageReapter pr = new PageReapter();
    pr.DataSource = dt.DefaultView;
    Repeater1.DataSource = pr.PagedData;
    Repeater1.DataBind();
    ltrDLPageText.Text = pr.DefaultText;

    using System;
    using System.Web;
    using System.Data;
    using System.Text;
    namespace RMB.BLL
    {
        
    /// <summary>
        
    /// PageReapter 的摘要说明。
        
    /// </summary>
        public class PageReapter
        {

            
    private int _pagesize = 15;        
            
    private int _curpage;
                    
            
    private int prvpage,nextpage;
            
    private string urlparams;
            
    private System.Web.UI.WebControls.PagedDataSource _objpds;

            
    public System.Web.UI.WebControls.PagedDataSource PagedData
            {
                
    get
                {
                    
    return _objpds;
                }
            }
            
            
    public DataView DataSource
            {
                
    set
                {    
                    _objpds 
    = new System.Web.UI.WebControls.PagedDataSource();
                    _objpds.DataSource 
    = value;
                    _objpds.AllowPaging 
    = true;
                    _objpds.PageSize 
    = _pagesize;
                    
    if(System.Web.HttpContext.Current.Request.QueryString["page"!= null)
                    {
                        
    try
                        {
                            _curpage 
    = Convert.ToInt32(System.Web.HttpContext.Current.Request.QueryString["page"]);
                        }
                        
    catch
                        {
                            _curpage 
    = 1;
                        }
                        
    if(_curpage < 1)
                            _curpage 
    = 1;
                        
    if(_curpage > _objpds.PageCount)
                            _curpage 
    = _objpds.PageCount;
                    }
                    
    else
                    {
                        _curpage 
    = 1;
                    }
                    
                    
                    
    if(_curpage > 0)
                        prvpage 
    = _curpage - 1;                    
                    
    else
                        prvpage 
    = 1;

                    
    if(_objpds.PageCount - _curpage > 0)
                        nextpage 
    = _curpage + 1;
                    
    else
                        nextpage 
    = _curpage;

                    _objpds.CurrentPageIndex 
    = _curpage - 1;

                    urlparams 
    = this.GetUrlParams();
                }
            }
            
    public string DefaultText
            {
                
    get
                {
                    StringBuilder objSb 
    = new StringBuilder();                
                    
    if(_curpage > 1)
                    {
                        objSb.Append(
    "<a href=\"?"+ urlparams +"1\">首页</a>&nbsp;");
                        objSb.Append(
    "<a href=\"?"+ urlparams + prvpage +"\">上一页</a>");
                    }
                    
    else
                    {
                        objSb.Append(
    "首页 上一页");                    
                    }

                    objSb.Append(
    "\n"+ this.SelectText +"\n");
                    
    if(_objpds.PageCount - _curpage > 0)
                    {
                        objSb.Append(
    "<a href=\"?"+ urlparams + nextpage +"\">下一页</a>&nbsp;");
                        objSb.Append(
    "<a href=\"?"+ urlparams + _objpds.PageCount +"\">尾页</a>");
                    }
                    
    else
                    {
                        objSb.Append(
    "下一页 尾页");                    
                    }
                    objSb.Append(
    "\n "+_objpds.DataSourceCount+"条记录 每页"+ _pagesize +"条记录");
                    objSb.Append(
    " 共"+ _objpds.PageCount +"页\n");
                    
    return objSb.ToString();
                }
            }
            
    public string SelectText
            {
                
    get
                {
                    StringBuilder objSb 
    = new StringBuilder();
                    objSb.Append(
    "<select name=\"page\" style=\"font-size:10px;\" onChange=\"javascript:location.href='?'+this.options[selectedIndex].value\">\n");
                    
    for(int i=1; i<_objpds.PageCount + 1; i++)
                    {
                        objSb.Append(
    "<option value=\""+ urlparams + i +"\"");
                        
    if(_curpage == i)
                            objSb.Append(
    "selected");
                        objSb.Append(
    ">"+ i +"</option>\n");
                    }
                    objSb.Append(
    "</select>\n");
                    
    return objSb.ToString();
                }
            }
            
    private string GetUrlParams()
            {
                
    string searchKey = "page=";
                
    string urlParams = System.Web.HttpContext.Current.Request.QueryString.ToString();
                
    if(urlParams == null && urlParams.Length < 1)
                    
    return searchKey;
                urlParams 
    = urlParams.Replace("&page=""page=");
                
    if(urlParams.IndexOf("page="> 0)
                    urlParams 
    = urlParams.Substring(0,urlParams.IndexOf("page="));
                
    return urlParams + "&" + searchKey;
            }
            
    public int PageSize
            {
                
    get
                {
                    
    return _pagesize;
                }
                
    set
                {
                    _pagesize 
    = value;
                }
            }
            
        }
    }
  • 相关阅读:
    ADSL PPPoE出错详解及宽带连接中的一些错误代码含义
    2007年世界顶级防火墙排名(附下载地址)
    Asp.net Mvc问题索引
    .NET 操作GPRS Model的类库 ATSMS
    .NET 3.5多个工程编译的DOS命令
    Google Chrome浏览器JS执行效率惊人 实测比IE快十几倍
    FTP文件同步工具(FTP_File_Synchronizer) 源代码
    [转载] ORACLE中SQL查询优化研究
    ext的grid导出为excel 方法
    数据库分页SQL语句
  • 原文地址:https://www.cnblogs.com/zkxp/p/363767.html
Copyright © 2011-2022 走看看