• 自家用的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;
                }
            }
            
        }
    }
  • 相关阅读:
    python函数应用
    python文件操作
    设计模式大杂烩(24种设计模式的总结以及学习设计模式的几点建议)
    (二十四)解释器模式详解
    (二十三)原型模式详解(clone方法源码的简单剖析)
    (二十二)访问者模式详解(伪动态双分派)
    (二十一)状态模式详解(DOTA版)
    (二十)职责链模式详解(都市异能版)
    (十九)组合模式详解
    (十八)享元模式详解(都市异能版)
  • 原文地址:https://www.cnblogs.com/zkxp/p/363767.html
Copyright © 2020-2023  润新知