做文章内容系统,经常需要文章分页,写了一个类,以后方便调用,新建一个类ContentPager.cs,直接复制代码既可,
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.ComponentModel;
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;
using System.Web.SessionState;
namespace Models
{
public class ContentPager: System.Web.UI.Page
{
private System.Web.UI.WebControls.HyperLink lnknext;
private System.Web.UI.WebControls.HyperLink lnkprev;
private System.Web.UI.WebControls.HyperLink lnkfist;
private System.Web.UI.WebControls.HyperLink lnklast;
private System.Web.UI.WebControls.Label pagenum;
private System.Web.UI.WebControls.Label pagecount;
private System.Web.UI.WebControls.Literal displaycontent;
public ContentPager()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void datapager(string content,string query)
{
string PagerSplit ="[RG_PAGE]";// System.Configuration.ConfigurationManager.AppSettings["PagerSplit"];//从 web.config中获取分页符,当然这里可以自己定义,为了方便还是放到配置文件或者数据库中。
string[] contentArray = StringSplit(content, PagerSplit);//这里是一个方法,摘自网上
int PageCount = contentArray.Length;
this.pagecount.Text = PageCount.ToString();
int CurPage; //确定当前页数
if (System.Web.HttpContext.Current.Request.Params["Page"] != null)
{
CurPage = Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]);
}
else
{
CurPage = 1;
}
if (CurPage < 1)
CurPage = 1;
if (Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]) > PageCount)
{
CurPage = PageCount;
}
//显示当前页数
this.pagenum.Text = CurPage.ToString();
//下一页
if (CurPage != PageCount)
{
lnknext.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1) + query;
}
//上一页
if (CurPage > 1)
{
lnkprev.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1) + query;
}
//第一页
if (CurPage != 1)
{
lnkfist.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1) + query;
}
//最后一页
if (CurPage != PageCount)
{
lnklast.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(PageCount) + query;
}
displaycontent.Text = contentArray[CurPage - 1].ToString();
}
#region System.Web.UI.WebControls.HyperLink DisplayContent
public System.Web.UI.WebControls.Literal DisplayContent
{
get
{
return this.DisplayContent;
}
set
{
this.displaycontent = value;
}
}
#endregion
#region System.Web.UI.WebControls.HyperLink Lnkprev
public System.Web.UI.WebControls.HyperLink Lnkprev
{
get
{
return this.lnkprev;
}
set
{
this.lnkprev = value;
}
}
#endregion
#region System.Web.UI.WebControls.HyperLink Lnknext
public System.Web.UI.WebControls.HyperLink Lnknext
{
get
{
return this.lnknext;
}
set
{
this.lnknext = value;
}
}
#endregion
#region System.Web.UI.WebControls.HyperLink Lnkfist
public System.Web.UI.WebControls.HyperLink Lnkfist
{
get
{
return this.lnkfist;
}
set
{
this.lnkfist = value;
}
}
#endregion
#region System.Web.UI.WebControls.HyperLink Lnklast;
public System.Web.UI.WebControls.HyperLink Lnklast
{
get
{
return this.lnklast;
}
set
{
this.lnklast = value;
}
}
#endregion
#region System.Web.UI.WebControls.Label Pagenum
public System.Web.UI.WebControls.Label Pagenum
{
get
{
return this.pagenum;
}
set
{
this.pagenum = value;
}
}
#endregion
#region System.Web.UI.WebControls.Label Pagecount
public System.Web.UI.WebControls.Label Pagecount
{
get
{
return this.pagecount;
}
set
{
this.pagecount = value;
}
}
#endregion
#region 将字符串分割成数组
/// <summary> /// 将字符串分割成数组
/// <param name="strSource">param>
/// <param name="strSplit">param>
/// <returns>returns>
public string[] StringSplit(string strSource, string strSplit)
{
string[] strtmp = new string[1];
int index = strSource.IndexOf(strSplit, 0);
if (index < 0)
{
strtmp[0] = strSource;
return strtmp;
}
else
{
strtmp[0] = strSource.Substring(0, index);
return StringSplit(strSource.Substring(index + strSplit.Length), strSplit, strtmp);
}
}
#endregion
#region 采用递归将字符串分割成数组
/// <summary> /// 采用递归将字符串分割成数组
/// summary>
/// <param name="strSource">param>
/// <param name="strSplit">param>
/// <param name="attachArray">param>
/// <returns>returns>
private string[] StringSplit(string strSource, string strSplit, string[] attachArray)
{
string[] strtmp = new string[attachArray.Length + 1];
attachArray.CopyTo(strtmp, 0);
int index = strSource.IndexOf(strSplit, 0);
if (index < 0)
{
strtmp[attachArray.Length] = strSource;
return strtmp;
}
else
{
strtmp[attachArray.Length] = strSource.Substring(0, index);
return StringSplit(strSource.Substring(index + strSplit.Length), strSplit, strtmp);
}
}
#endregion
}
}
前台页面:
<div class="news-content">
<asp:Literal ID="displaycontent" runat="server"></asp:Literal>
</div>
<ul class="news-bottom listbt" id="list-bottom">
<strong><a href="#" title="">TOP</a></strong>
<li>
第<asp:Label id="currentpage" runat="server"></asp:Label>页 </li>
共<li> <asp:label id="totalpage" runat="server"></asp:label>页</li>
<li> <asp:hyperlink id="lnkfist" runat="server" >首页</asp:hyperlink>| </li>
<li> <asp:hyperlink id="lnkprev" runat="server" >前页</asp:hyperlink>|</li>
<li> <asp:hyperlink id="lnknext" runat="server" >下页</asp:hyperlink>| </li>
<li> <asp:hyperlink id="lnklast" runat="server" >尾页</asp:hyperlink>
</li>
</ul>
调用方法:
pager.Lnknext = this.lnknext;
pager.Lnkprev = this.lnkprev;
pager.Lnklast = this.lnklast;
pager.Lnkfist = this.lnkfist;
pager.Pagenum = this.currentpage; pager.Pagecount = this.totalpage;
pager.DisplayContent = this.displaycontent;
string query = "&id=" + id;
pager.datapager(conntent, query);