大文章的分页

        前面有篇文章介绍了“asp.net长文章采用分隔符进行分页 ”,但是如果分页中含有html标记还是很容易出现问题的,比如在FCK中插入"[--page--] "(自定义的分页符)后,往往会把成对的<div></div>或<p></p>标记隔开导致网页布局混乱。不料FCK自带插入分页符功能,使用FCKeditor 中的分页符后就可以完美解决长文章的分页问题了。

分页代码如下:
/// <summary>
///文章分页函数
/// </summary>
/// <param name="content">文章内容</param>
/// <param name="currentPage">当前页码</param>
/// <param name="pageUrl">当前页面地址</param>

protected void ArticlePage(string content, int currentPage, string pageUrl)
{
int pageCount = 0;      //页数


content = content.Replace("<div style=/"page-break-after: always/"><span style=/"display: none/">&nbsp;</span></div>", "[--page--]");      //FCK在IE中生成的默认分页符,替换为自定义分页符


content = content.Replace("<div style=/"page-break-after: always;/"><span style=/"display: none;/">&nbsp;</span></div>", "[--page--]");      //FCK在FF中生成的默认分页符,替换为自定义分页符


string[] tempContent = System.Text.RegularExpressions.Regex.Split(content, "//u005B--page--]");      //取得分页符 "//u005B"为"["的转义


pageCount = tempContent.Length;


string outputContent = "";      //要输出的内容

if (pageCount <= 1)
{
outputContent = content;       //文章内容
this.pnlPage.Visible = false;
}
else
{
string pageStr = "";     //分页字符串
pageStr += "共 <span class='count'>" + pageCount + "</span> 页&nbsp;&nbsp;";

if (currentPage != 1)
{
pageStr += "<a class='prev' href =" + pageUrl + "?page=" + (currentPage - 1) + ">上一页</a>";
}

for (int i = 1; i <= pageCount; i++)
{
if (i == currentPage)
pageStr += ("<span class='active'>" + i + "</span>");
else
pageStr += ("<a class='num' href =" + pageUrl + "?page=" + i + ">" + i + "</a>");
}

if (currentPage != pageCount)
{
pageStr += "<a class='next' href =" + pageUrl + "?page=" + (currentPage + 1) + ">下一页</a>";
}
this.ltlPage.Text = pageStr;


outputContent = tempContent[currentPage - 1].ToString();
}
this.ltlContent.Text = outputContent;
}

调用代码举例:ArticlePage(strContent, page, "News_Detail_" + intid + ".html");    //分页输出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值