这几天闲来无事,所以写了个大文章分页代码,下面提供给大家。
实现思路是:后台管理员文章发布的时候自己手动添加分页符,后台我用的也是 FCKeditor,所以修改了他的source增加了自己的button。在button的事件里写上自己的代码,当然就是直接insert innerhtml自己的分页标志了,我目前用的是|,|,|,|,|,|当然可以自定义其他的。首先提供个类库。
asp.net分页代码1 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;
/// <summary>
/// ContentPager 的摘要说明
/// summary>
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.Label displaycontent;
public ContentPager()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void datapager(string content,string query)
{
string PagerSplit = System.Configuration.ConfigurationManager.AppSettings["PagerSplit"];//从 web.config中获取分页符,当然这里可以自己定义,为了方便还是放到配置文件或者数据库中。
string[] contentArray = StringSplit(content, PagerSplit);//这里是一个方法,摘自网上
int PageCount = contentArray.Length;
this.pagecount.Text = "共" + PageCount.ToString() + "font>b>页";
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() + "font>b>页";
//下一页
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.Label 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>
/// 将字符串分割成数组
/// 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
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
- 112.
- 113.
- 114.
- 115.
- 116.
- 117.
- 118.
- 119.
- 120.
- 121.
- 122.
- 123.
- 124.
- 125.
- 126.
- 127.
- 128.
- 129.
- 130.
- 131.
- 132.
- 133.
- 134.
- 135.
- 136.
- 137.
- 138.
- 139.
- 140.
- 141.
- 142.
- 143.
- 144.
- 145.
- 146.
- 147.
- 148.
- 149.
- 150.
- 151.
- 152.
- 153.
- 154.
- 155.
- 156.
- 157.
- 158.
- 159.
- 160.
- 161.
- 162.
- 163.
- 164.
- 165.
- 166.
- 167.
- 168.
- 169.
- 170.
- 171.
- 172.
- 173.
- 174.
- 175.
- 176.
- 177.
- 178.
- 179.
- 180.
- 181.
- 182.
- 183.
- 184.
- 185.
- 186.
- 187.
- 188.
- 189.
- 190.
- 191.
- 192.
- 193.
- 194.
- 195.
- 196.
- 197.
- 198.
- 199.
- 200.
- 201.
- 202.
- 203.
- 204.
- 205.
- 206.
- 207.
- 208.
- 209.
- 210.
- 211.
- 212.
- 213.
- 214.
- 215.
- 216.
- 217.
- 218.
- 219.
- 220.
- 221.
- 222.
- 223.
- 224.
- 225.
- 226.
- 227.
- 228.
- 229.
- 230.
- 231.
- 232.
- 233.
- 234.
- 235.
- 236.
- 237.
- 238.
asp.net分页代码2 调用部分:
在aspx中增加label等元素。
< asp:label id="currentpage" runat="server" CssClass="gray">当前页< /asp:label>
< asp:label id="totalpage" runat="server" CssClass="gray">Label< /asp:label>
< asp:hyperlink id="lnkfist" runat="server" CssClass="gray">首页< /asp:hyperlink>|
< asp:hyperlink id="lnkprev" runat="server" CssClass="gray">前页< /asp:hyperlink>|
< asp:hyperlink id="lnknext" runat="server" CssClass="gray">下页< /asp:hyperlink>|
< asp:hyperlink id="lnklast" runat="server" CssClass="gray">尾页< /asp:hyperlink>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
在aspx.cs中增加调用代码。
private ContentPager pager;
protected void Page_Load(object sender, EventArgs e)
{
int id = Convert.ToInt32(Request.QueryString["id"]);//接收参数,例如访问这个页是xxx.aspx?id=1
DataSet ds = new DataSet();
//从数据库读内容部分就略掉了
DataRow drow;
drow = ds.Tables[0].Rows[0];
string cont = drow["content"].ToString();//此部分可以把内容中的HTML代码转换一下,我也省略了
//文章分页,关键部分
pager = new ContentPager();
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.content;
string query = "&id=" + Request.QueryString["id"].ToString();
pager.datapager(cont, query);
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.