ASP.NET长文章分页显示函数

  1. public string NoHTML(string Htmlstring) //去除HTML标记 
  2.     //删除脚本 
  3.     Htmlstring = Regex.Replace(Htmlstring, @" <script[^>]*?>.*? </script>""", RegexOptions.IgnoreCase); 
  4.     //删除HTML 
  5.     Htmlstring = Regex.Replace(Htmlstring, @" <(.[^>]*)>""", RegexOptions.IgnoreCase); 
  6.     Htmlstring = Regex.Replace(Htmlstring, @"([/r/n])[/s]+""", RegexOptions.IgnoreCase); 
  7.     Htmlstring = Regex.Replace(Htmlstring, @"-->""", RegexOptions.IgnoreCase); 
  8.     Htmlstring = Regex.Replace(Htmlstring, @" <!--.*""", RegexOptions.IgnoreCase); 
  9.     Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);""/"", RegexOptions.IgnoreCase); 
  10.     Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);""&", RegexOptions.IgnoreCase); 
  11.     Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);"" <", RegexOptions.IgnoreCase); 
  12.     Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);"">", RegexOptions.IgnoreCase); 
  13.     Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);"" ", RegexOptions.IgnoreCase); 
  14.     Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);""/xa1", RegexOptions.IgnoreCase); 
  15.     Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);""/xa2", RegexOptions.IgnoreCase); 
  16.     Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);""/xa3", RegexOptions.IgnoreCase); 
  17.     Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);""/xa9", RegexOptions.IgnoreCase); 
  18.     Htmlstring = Regex.Replace(Htmlstring, @"&#(/d+);""", RegexOptions.IgnoreCase); 
  19.     Htmlstring.Replace(" <"""); 
  20.     Htmlstring.Replace(">"""); 
  21.     Htmlstring.Replace("/r/n"""); 
  22.     Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim(); 
  23.     return Htmlstring; 
  24. public string OutputBySize(string p_strContent)//分页函数 
  25.     string m_strRet = ""
  26.     int m_intPageSize = 2500;//文章每页大小 
  27.     int m_intCurrentPage = 1;//设置第一页为初始页 
  28.     int m_intTotalPage = 0; 
  29.     int m_intArticlelength = NoHTML(p_strContent).Length;//文章长度 
  30.     if (m_intPageSize < m_intArticlelength) 
  31.     {//如果每页大小大于文章长度时就不用分页了 
  32.         if (m_intArticlelength % m_intPageSize == 0) 
  33.         {//set total pages count 
  34.         m_intTotalPage = m_intArticlelength / m_intPageSize; 
  35.         } 
  36.         else 
  37.         {//if the totalsize 
  38.         m_intTotalPage = m_intArticlelength / m_intPageSize + 1; 
  39.         } 
  40.         if (Request.QueryString["pages"] != null
  41.         {//set Current page number 
  42.         try 
  43.         {//处理不正常的地址栏的值 
  44.             m_intCurrentPage = Convert.ToInt32(Request.QueryString["pages"]); 
  45.             if (m_intCurrentPage > m_intTotalPage) 
  46.           
  47.             m_intCurrentPage = m_intTotalPage; 
  48.           
  49.         } 
  50.         catch 
  51.         { 
  52.             m_intCurrentPage = m_intCurrentPage; 
  53.         } 
  54.         } 
  55.         //set the page content 设置获取当前页的大小 
  56.         if (m_intCurrentPage < m_intTotalPage) 
  57.         { 
  58.         m_intPageSize = m_intCurrentPage < m_intTotalPage ? m_intPageSize : (m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1)); 
  59.         m_strRet += p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize); 
  60.         } 
  61.         else if(m_intCurrentPage == m_intTotalPage ) 
  62.         { 
  63.         int mm_intPageSize=m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1); 
  64.         m_strRet += p_strContent.Substring(m_intArticlelength - mm_intPageSize); 
  65.         } 
  66.     
  67.         string m_strPageInfo = " <p> </p>"
  68.         for (int i = 1; i <= m_intTotalPage; i++) 
  69.         { 
  70.         if (i == m_intCurrentPage) 
  71.             m_strPageInfo += "第" + i + "页 | "
  72.         else 
  73.             m_strPageInfo += " <a href=news_id" + Request.QueryString["wzid"] + "_pages" + i + ".html>" + i + " </a>|"
  74.         } 
  75.         //输出显示各个页码 
  76.         this.labPageNumber.Text = m_strPageInfo; 
  77.     } 
  78.     else 
  79.     { 
  80.         m_strRet += p_strContent; 
  81.     } 
  82.     return m_strRet; 
  83. protected void Page_Load(object sender, EventArgs e) 
  84.     SqlDataReader dr = shuju.duquzt(Int32.Parse(Request.QueryString["wzid"])); 
  85.     if (dr == nullreturn
  86.     if (dr.Read()) 
  87.     { 
  88.         this.labContent.Text = OutputBySize(dr["wzcontent"].ToString());//调用该函数 
  89. ... 

前台页面分页处使用的控件: <asp:Label ID="labPageNumber"    Font-Size="14px" runat="server"> </asp:Label>

修改版:

  1. protected void Page_Load(object sender, EventArgs e) 
  2.     { 
  3.         string str = "两年多的坚持推动最终换来圆满的结果,民众期盼已久的成都赴台湾包机将于12月19日首度实现直航。据悉,成都市作为此次协议签署中大陆新开放的16个客运包机直航城市、8个邮件封发局之一,空运直航和直接通邮的实现,势必将翻开成都台湾两地全方位交流与合作的新篇章。成都到台湾包机直航将带来4方面的有利举措。一是有利于成都市进一步推动对台经贸工作。目前,在成都市登记注册的台资企业共有750家,投资总额22.36亿美元,居西部大城市前列,在成都常住的台商、台胞超过3000人,直航包机的开通将更有利于成都台湾的经贸合作。二是有利于加强对台交流。直航包机的开通,必将极大推进类似对台交流工作,不断扩大两岸交流领域和层次。三是有利于推动成都市灾后重建工作。未来几年,成都灾后重建项目中包含很多广大台湾同胞参与的项目,这些项目的建成和投入使用,将更加密切成都台湾联系。四是有利于西部地区旅游市场的恢复和重建。受地震影响,成都市旅游市场遭受重创,现在入境游仍在低谷徘徊。成都旅游协会赴台开展了多种形势的旅游项目推介活动。台湾旅游业界对组团来成都市旅游均持积极态度,对成都作为第二批直航包机城市表示极大的支持,随着成都台湾直航包机开通和对台旅游开放,将大大方便台湾游客来成都旅游,极大地促进成都市入境游市场的恢复。目前,关于成都到台湾包机直航首航工作,国航西南公司和四川航空公司都在积极筹备中,四川航空公司已对外公布,将于12月19日开通首航。另外,国航西南公司也计划在12月19日开通首航,并表示一旦首发时间确认,将及时对外公布。"
  4.         Label1.Text = OutputBySize(str); 
  5.     } 
  6.     public string OutputBySize(string p_strContent)//分页函数 
  7.     { 
  8.         string m_strRet = ""
  9.         int m_intPageSize = 100;//文章每页大小 
  10.         int m_intCurrentPage = 1;//设置第一页为初始页 
  11.         int m_intTotalPage = 0; 
  12.         int m_intArticlelength = p_strContent.Length;//文章长度 
  13.         if (m_intPageSize < m_intArticlelength) 
  14.         {//如果每页大小大于文章长度时就不用分页了 
  15.             if (m_intArticlelength % m_intPageSize == 0) 
  16.             {//set total pages count 
  17.                 m_intTotalPage = m_intArticlelength / m_intPageSize; 
  18.             } 
  19.             else 
  20.             {//if the totalsize 
  21.                 m_intTotalPage = m_intArticlelength / m_intPageSize + 1; 
  22.             } 
  23.             if (Request.QueryString["ps"] != null
  24.             {//set Current page number 
  25.                 try 
  26.                 {//处理不正常的地址栏的值 
  27.                     m_intCurrentPage = Convert.ToInt32(Request.QueryString["ps"]); 
  28.                     if (m_intCurrentPage > m_intTotalPage) 
  29.                         m_intCurrentPage = m_intTotalPage; 
  30.                 } 
  31.                 catch 
  32.                 { 
  33.                     //m_intCurrentPage = m_intCurrentPage; 
  34.                 } 
  35.             } 
  36.             //set the page content 设置获取当前页的大小 
  37.             if (m_intCurrentPage < m_intTotalPage) 
  38.             { 
  39.                 m_intPageSize = m_intCurrentPage < m_intTotalPage ? m_intPageSize : (m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1)); 
  40.                 m_strRet += p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize); 
  41.             } 
  42.             else if (m_intCurrentPage == m_intTotalPage) 
  43.             { 
  44.                 int mm_intPageSize = m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1); 
  45.                 m_strRet += p_strContent.Substring(m_intArticlelength - mm_intPageSize); 
  46.             } 
  47.             string m_strPageInfo = ""
  48.             for (int i = 1; i <= m_intTotalPage; i++) 
  49.             { 
  50.                 if (i == m_intCurrentPage) 
  51.                     m_strPageInfo += "[" + i + "]"
  52.                 else 
  53.                     m_strPageInfo += " <a href=?ps=" + i + ">[" + i + "] </a> "
  54.             } 
  55.             if (m_intCurrentPage > 1) 
  56.                 m_strPageInfo = " <a href=?ps=" + (m_intCurrentPage - 1) + ">上一页 </a>" + m_strPageInfo; 
  57.             if (m_intCurrentPage < m_intTotalPage) 
  58.                 m_strPageInfo += " <a href=?ps=" + (m_intCurrentPage + 1) + ">下一页 </a>"
  59.             //输出显示各个页码 
  60.             this.ShowPageNumber.Text = " <p> </p>" + m_strPageInfo; 
  61.         } 
  62.         else 
  63.         { 
  64.             m_strRet += p_strContent; 
  65.         } 
  66.         return m_strRet; 
  67.     } 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值