还没写完善的东西。所以直接在里面修改参数。
使用时
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> ");
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> ");
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;
}
}
}
}
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> ");
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> ");
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;
}
}
}
}