asp.net使用FCK编辑器中的分页符实现长文章分页功能

 更新时间:2024年07月01日 12:04:29   作者:smartsmile2012  
这篇文章主要介绍了asp.net使用FCK编辑器中的分页符实现长文章分页功能,涉及asp.net字符串及分页操作的相关技巧,需要的朋友可以参考下

本文实例讲述了asp.net使用FCK编辑器中的分页符实现长文章分页功能。分享给大家供大家参考,具体如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SplitContent.aspx.cs" Inherits="SplitContent" %>
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  </div>
  <asp:Panel ID="pnlPage" runat="server" Height="286px">
    <asp:Label ID="ltlContent" runat="server" Text="ltlContent"></asp:Label>
    <br />
    <asp:Label ID="ltlPage" runat="server" Text="ltlPage"></asp:Label>
  </asp:Panel>
  </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class SplitContent : System.Web.UI.Page
{
  private static string a = "123456";
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      //文章分页页码
      int currentPage = Request["cpage"] == null ? 1 : Convert.ToInt32(Request["cpage"]);
      //URL地址
      string pageUrl = Request.Url.ToString();
      ArticlePage(a, currentPage, pageUrl);
    }
  }
  /// <summary>
  ///文章分页函数
  /// </summary>
  /// <param name="content">文章内容</param>
  /// <param name="currentPage">当前页码</param>
  /// <param name="pageUrl">当前页面地址</param>
  protected void ArticlePage(string content, int currentPage, string pageUrl)
  {
    pageUrl = !pageUrl.Contains("?") ? pageUrl + "?" : pageUrl.Replace("&cpage=" + currentPage, "");
    int pageCount = 0;//页数
    content = content.Replace("<div style=\"page-break-after: always\"><span style=\"display: none\"> </span></div>", "[--page--]");//FCK在IE中生成的默认分页符,替换为自定义分页符
    content = content.Replace("<div style=\"page-break-after: always\"><span style=\"display: none\"> </span></div>", "[--page--]");//FCK在FF中生成的默认分页符,替换为自定义分页符
    string[] tempContent = System.Text.RegularExpressions.Regex.Split(content, "\\[--page--]"); //取得分页符 "\\["为"["的转义
    pageCount = tempContent.Length;
    string outputContent = "";//要输出的内容
    if (pageCount <= 1)
    {
      outputContent = content; //文章内容
      this.pnlPage.Visible = false;
    }
    else
    {
      string pageStr = "";//分页字符串
      pageStr += "共<span class='count'>" + pageCount + "</span>页 ";
      if (currentPage != 1)
      {
        pageStr += " <a class='prev' href =" + pageUrl + "&cpage=" + (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 + "&cpage=" + i + ">" + i + "</a>");
      }
      if (currentPage != pageCount)
      {
        pageStr += " <a class='next' href =" + pageUrl + "&cpage=" + (currentPage + 1) + ">下页</a>";
      }
      this.ltlPage.Text = pageStr;
      outputContent = tempContent[currentPage - 1].ToString();
    }
    this.ltlContent.Text = outputContent;
  }
}

更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net操作json技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

希望本文所述对大家asp.net程序设计有所帮助。

相关文章

最新评论