ASP.NET 中 FCK新聞分頁實現

來源:互聯網
上載者:User

這裡實現一個簡單的使用FCK對新聞內容進行分頁的功能

 

整個DEMO需要手動建立3個檔案

 

1、FCK添加新聞內容頁;2、展示分頁效果頁面;3、分頁處理類

 

為了不浪費尋求分頁協助的朋友寶貴的時間,先上,看是不是您想要的,如果是的話,

 

再往下看。貌似這“刻薄”不能上傳附件,具體

 

 

的DEMO我會上傳到共用資源中。

 

添加新聞

 

 

 

點添加之後顯示頁面:

 

 

如果顯示第一頁,之後頁碼和下一頁,如果是最後一頁,則只有頁碼和上一頁,如果您需要全部顯示稍後在GetPage.cs類中添加相關代碼就可以了。

 

 

下面說下具體的操作

 

首先建立網站 取名:FCKPagesTest

 

複製FCK檔案包"fckeditor"到項目中,並找到fckeditor/editor/js/替換DEMO中所給的兩個JS類。

 

名稱分別為:fckeditorcode_gecko.js 和 fckeditorcode_ie.js

 

然後找到"fckeditor"下的fckconfig.js檔案,開啟檔案,這裡需要做三個操作:

 

一:

fckconfig  51行  FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/';  之後添加
FCKConfig.Plugins.Add( 'insertpage','zh-cn' ) ;
FCKConfig.Plugins.Add('flvPlayer', 'zh-cn');

 

 

二:

FCKConfig.DefaultLanguage = 'en'; 修改為
FCKConfig.DefaultLanguage = 'zh-cn';

 

 

三:

在預設功能項FCKConfig.ToolbarSets["Default"] =

後面的項中添加'PageBreak'

 

我這裡的把大部分功能都添加進去了 不過為了方便你您查看,貼出選項這裡的代碼,紅色是我們剛加進去的:

 

FCKConfig.ToolbarSets["Default"] = [
 ['Source'],
    ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteWord', '-', 'Print', 'SpellCheck'],
    ['Undo', 'Redo', '-', 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat'],
 ['Bold', 'Italic', 'Underline', 'StrikeThrough', '-', 'Subscript', 'Superscript'],
 ['OrderedList', 'UnorderedList', '-', 'Outdent', 'Indent', 'Blockquote'],
 ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyFull'],
 ['Link', 'Unlink', 'Anchor'],
    ['Image', 'Flash', 'Table', 'Rule', 'Smiley', 'SpecialChar', 'flvPlayer','PageBreak'],
 ['FontFormat', 'FontName', 'FontSize'],
 ['TextColor', 'BGColor'],

];

 

 

 

到這裡為止FCK分頁的準備工作就處理好了,考了駕照得上路才行,在我們剛才建立的網站中 添加ASPX頁面 取名:AddNews.aspx,註冊FCK控制項,當然如果直接從工具拖到頁面會幫你做好註冊這一步。並且配好:BasePath

 

一:

註冊FCK

<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>

二:

<FCKeditorV2:FCKeditor ID="FckNewsContent" runat="server" Width="700px" Height="400px"
                    BasePath="fckeditor/">
                </FCKeditorV2:FCKeditor>

 

瀏覽看下FCK控制項,在工具條的最後是不是發現分頁符了呢?

 

這時候可以跟前面效果展示的圖一樣直接插入新聞內容了,在需要換行的地方加入分頁符。

 

 

接下來我們處理下分頁類GetPage.cs ,代碼不多,加上注釋換行才70多行,其中紅色注釋部

 

分,這裡解釋下,如果您的是根據編號查詢

 

的,那麼直接傳入參數string New_Guid,把注釋部分取消注釋,由於這裡只是個DEMO,所

 

以做了簡單處理,添加新聞之後直接顯示內容

 

了。

 

 

using System;
using System.Text;
using System.Text.RegularExpressions;

/// <summary>
///GetPage 的摘要說明
/// </summary>
public class GetPage
{
    /// <summary>
    /// 新聞內容分頁
    /// </summary>
    /// <param name="content">要分頁的內容</param>
    /// <returns>當前頁新聞內容</returns>
    public static string NewsContentPager(string content, string New_Guid)
    {
        if (content == null)
        {
            return null;
        }
        content = EnHtml(content);
        string p = "//[page//]";
        if (content.IndexOf("[page]") != -1)
        {
            string page = System.Web.HttpContext.Current.Request.QueryString["page"];
            string[] arrContent = Regex.Split(content, p, RegexOptions.IgnoreCase);
            int pageSize = arrContent.Length;
            if (String.IsNullOrEmpty(page))
                page = "0";
            if (int.Parse(page) >= pageSize)
            {
                System.Web.HttpContext.Current.Response.StatusCode = 404;
                System.Web.HttpContext.Current.Response.End();
            }
            //產生分頁頁碼
            StringBuilder sb = new StringBuilder();
            sb.Append(arrContent[int.Parse(page)].ToString());
            sb.Append("<div id=/"newspager/" class=/"newPager/">");
            if (int.Parse(page) > 0)
                //sb.AppendFormat("<a href=/"?page={0}&news_guid={1}/">上一頁</a>&nbsp;", int.Parse(page) - 1, New_Guid);
                sb.AppendFormat("<a href=/"?page={0}/">上一頁</a>&nbsp;", int.Parse(page) - 1);

            for (int i = 0; i < pageSize; i++)
            {
                if (i == int.Parse(page))
                    sb.AppendFormat("&nbsp;<span>{0}</span>&nbsp;", i + 1);
                else
                {
                    //sb.AppendFormat("&nbsp;<a href=/"?page={0}&news_guid={1}/">{2}</a>&nbsp;", i, New_Guid, i + 1);
                    sb.AppendFormat("&nbsp;<a href=/"?page={0}/">{1}</a>&nbsp;", i, i + 1);
                }
            }
            if (int.Parse(page) < pageSize - 1)
                //sb.AppendFormat("<a href=/"?page={0}&news_guid={1}/">下一頁</a>&nbsp;", int.Parse(page) + 1, New_Guid);
                sb.AppendFormat("<a href=/"?page={0}/">下一頁</a>&nbsp;", int.Parse(page) + 1);
            sb.Append("</div>");
            return sb.ToString();
        }
        else
        {
            return content;
        }
    }

    public static string EnHtml(string str)
    {
        if (str == null)
            return "";
        str = str.Replace("<div>[page]</div>", "[page]");
        str = str.Trim();
        return str;
    }
}

 

 

駕照拿著,也到了高速的入口,開始享受開車的樂趣吧。

 

最後只需要您把新聞內容傳入處理方法中,等待返回結果,並輸出到介面就行了。

 

 

 

Demo:FCK新聞分頁Demo

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.