C# 內容分頁

   今天又改程序了,要是自己寫的程序能滿足所有的需求多好啊~嘿嘿。今天改了東西是做個內容分頁,上網找了一些資料,有的寫的不是很明白,所以自己就自己整理了一個方法出來,對於參考的文章的原地址無從查找,所以就不給出鏈接了,希望原作者諒解。以下是我自己整理的方法:

/// <summary>
    /// 內容分頁函數 add by think.huang at 2010-8-3
    /// </summary>
    /// <param name="content">內容</param>
    /// <param name="ctextSize">截取的長度</param>
    /// <param name="lblPager">用於顯示分頁的控件</param>
    /// <param name="curtPage">當前頁</param>
    ///<param name="praName">參數名稱</param>
    ///<param name="Id">參數值</param>
    /// <returns></returns>
    public static string ContentPager(string content, int ctextSize, Label lblPager, int curtPage,string Id,string praName)
    {
        //要返回的內容
        string strCon = "";

        //段落開始的位置 初始爲0
        int startIndex = 0;
        //字段截斷的位置
        int cutIndex = 0;
        //頁數
        int pageCount = 0;

        //如果總的長度大於每頁顯示的數目才分頁
        if (content.Length > ctextSize)
        {
            //計算大概多少頁
            int count = content.Length / ctextSize;
            //根據頁數來進行循環計算
            for (int i = 0; i < count; i++)
            {
                //如果截取的位置小於內容總長度
                if (ctextSize + cutIndex < content.Length)
                {
                    //在指定長度的後一個</p>標籤進行截斷
                    cutIndex = content.IndexOf("</p>", startIndex + ctextSize);
                    if (cutIndex <= 0)
                    {
                        //大寫
                        cutIndex = content.IndexOf("</P>", startIndex + ctextSize);
                    }
                    //計算分頁的數目
                    pageCount++;
                }
                else
                {
                    cutIndex = content.Length;
                }
                //獲取截取出來的字段
                if (curtPage == i + 1)
                {
                    strCon = content.Substring(startIndex, cutIndex - startIndex);
                }
                //將此次截取的位置作爲下次截取的開始位置
                startIndex = cutIndex;
            }

        }
        else
        {
            lblPager.Text = "";
            return content;
        }

        //顯示分頁
        StringBuilder pager = new StringBuilder();//定義分頁代碼變量
        if (pageCount > 1)//當頁數大於1的時候我們顯示頁數
        {
            for (int i = 1; i <= pageCount; i++)
            {
                if (i == curtPage)//如果是當前頁,加粗顯示
                    pager.Append("<b>[" + i + "]</b> ");
                else
                    pager.Append("<a href=?"+praName+"=" + Id + "&page=" + i + ">[" + i + "]</a> ");
            }
            if (curtPage + 1 > pageCount)//顯示下一頁,方便瀏覽
            {
                pager.Append("<a href=?" + praName + "=" + Id + "&page=" + (pageCount) + ">[下一頁]</a></p>");
            }
            else
            {
                pager.Append("<a href=?" + praName + "=" + Id + "&page=" + (curtPage + 1) + ">[下一頁]</a></p>");
            }
        }

        lblPager.Text = pager.ToString();

        return strCon;
    }

發佈了20 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章