.net長文章分頁實現

前臺:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<!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 id="Head1" runat="server">
    
<title>未命名頁面</title>
    
<style type="text/css">
   
    #divPage a
{color:green;text-decoration:none;font-size:12px;border:1px solid green;padding:4px;}
    #divPage a:hover
{color:green;text-decoration:none;font-size:12px;border:1px solid green;padding:4px;} 
    
</style>
</head>
<body >
    
<form id="form1" runat="server">
        
<div style="width: 400px; height: 300px; border: 1px solid green">
            
&nbsp;&nbsp;&nbsp;&nbsp;<asp:Label ID="Label1" runat="server" Font-Size="12px"></asp:Label>
        
</div>
        
<div id="divPage">
            
<asp:Label ID="ShowPageNumber" runat="server"> </asp:Label></div>
    
</form>
</body>
</html>

 

 

 

後臺:

代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Text;
public partial class Default3 : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        
string str = "兩年多的堅持推動最終換來的圓滿結果两年多的坚持推动最终换来圆满的结果,民众期盼已久的成都赴台湾包机将于12月19日首度实现直航。据悉,成都市作为此次协议签署中大陆新开放的16个客运包机直航城市、8个邮件封发局之一,空运直航和直接通邮的实现,势必将翻开成都台湾两地全方位交流与合作的新篇章。成都到台湾包机直航将带来4方面的有利举措。一是有利于成都市进一步推动对台经贸工作。目前,在成都市登记注册的台资企业共有750家,投资总额22.36亿美元,居西部大城市前列,在成都常住的台商、台胞超过3000人,直航包机的开通将更有利于成都台湾的经贸合作。二是有利于加强对台交流。直航包机的开通,必将极大推进类似对台交流工作,不断扩大两岸交流领域和层次。三是有利于推动成都市灾后重建工作。未来几年,成都灾后重建项目中包含很多广大台湾同胞参与的项目,这些项目的建成和投入使用,将更加密切成都台湾联系。四是有利于西部地区旅游市场的恢复和重建。受地震影响,成都市旅游市场遭受重创,现在入境游仍在低谷徘徊。成都旅游协会赴台开展了多种形势的旅游项目推介活动。台湾旅游业界对组   <img src=\"images/c7.jpg\"  />团来成都市旅游均持积极态度,对成都作为第二批直航包机城市表示极大的支持,随着成都台湾直航包机开通和对台旅游开放,将大大方便台湾游客来成都旅游,极大地促进成都市入境游市场的恢复。目前,关于成都到台湾包机直航首航工作,国航西南公司和四川航空公司都在积极筹备中,四川航空公司已对外公布,将于12月19日开通首航。另外,国航西南公司也计划在12月19日开通首航,并表示一旦首发时间确认,认";
        Label1.Text 
= OutputBySize(str);
    }

    
public string OutputBySize(string p_strContent)//長文章分页函数
    {
        
string m_strRet = "";
        
int m_intPageSize = 200;//文章每頁顯示的大小,即每頁顯示多少字
        int m_intCurrentPage = 1;//設置第一頁為初始頁
        int m_intTotalPage = 0;
        
int m_intArticlelength = p_strContent.Length;//文章長度
        if (m_intPageSize < m_intArticlelength)
        {
            
//如果每頁大小大於文章長度時就不用分頁了
            if (m_intArticlelength % m_intPageSize == 0)
            {
//set total pages count
                m_intTotalPage = m_intArticlelength / m_intPageSize;
            }
            
else
            {
//if the totalsize
                m_intTotalPage = m_intArticlelength / m_intPageSize + 1;
            }
            
if (Request.QueryString["ps"!= null)
            {
//set Current page number
                try
                {
//處理不正常的地址欄的值
                    m_intCurrentPage = Convert.ToInt32(Request.QueryString["ps"]);
                    
if (m_intCurrentPage > m_intTotalPage)

                        m_intCurrentPage 
= m_intTotalPage;
                }
                
catch
                {
                    
//m_intCurrentPage = m_intCurrentPage;
                }
            }
            
//設置獲取當前頁的大小
            if (m_intCurrentPage < m_intTotalPage)
            {
                m_intPageSize 
= m_intCurrentPage < m_intTotalPage ? m_intPageSize : (m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1));
                m_strRet 
+= p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize);
            }
            
else if (m_intCurrentPage == m_intTotalPage)
            {
                
int mm_intPageSize = m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1);
                m_strRet 
+= p_strContent.Substring(m_intArticlelength - mm_intPageSize);
            }

            
string m_strPageInfo = "";
            
for (int i = 1; i <= m_intTotalPage; i++)
            {
                
if (i == m_intCurrentPage)
                {
                    m_strPageInfo 
+= "" + i + "";
                }
                
else
                {
                    m_strPageInfo 
+= " <a href=?ps=" + i + ">" + i + "</a> ";

                }
            }

            
if (m_intCurrentPage > 1)
                m_strPageInfo 
= "<a href=?ps=" + (m_intCurrentPage - 1+ ">上一页</a>" + m_strPageInfo;
            
if (m_intCurrentPage < m_intTotalPage)
                m_strPageInfo 
+= "<a href=?ps=" + (m_intCurrentPage + 1+ ">下一页</a>";
            
//輸出顯示各個頁碼
            this.ShowPageNumber.Text ="<p></p>"+m_strPageInfo.ToString();
        }
        
else
        {
            m_strRet 
+= p_strContent;
        }
        
return m_strRet;
    }



}

 

 

posted @ 2010-12-22 15:36  你妹的sb  阅读(439)  评论(0编辑  收藏  举报
百度一下