日期:2014-05-20  浏览次数:20401 次

100分散:再分享一个ASP.NET长文章分页显示函数,先到先得分
主要说明下:

1.该函数非本人原创,而是在此基础大力修改,因为原的,分页到2、3页就不能正确出来内容了;减少一些不必要的步骤;
2.CSS样式自己定;
3.个人感觉性能还是很不错的,http://www.dzswej.com/news_id692.html 可以试下


public string NoHTML(string Htmlstring) //去除HTML标记
  {
  //删除脚本
  Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
  //删除HTML
  Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);

  Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
  Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);

  Htmlstring.Replace("<", "");
  Htmlstring.Replace(">", "");
  Htmlstring.Replace("\r\n", "");
  Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();

  return Htmlstring;
  }
  public string OutputBySize(string p_strContent)//分页函数
  {
  string m_strRet = "";
  int m_intPageSize = 2500;//文章每页大小 
  int m_intCurrentPage = 1;//设置第一页为初始页 
  int m_intTotalPage = 0;
  int m_intArticlelength = NoHTML(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["pages"] != null)
  {//set Current page number 
  try
  {//处理不正常的地址栏的值 
  m_intCurrentPage = Convert.ToInt32(Request.QueryString["pages"]);
  if (m_intCurrentPage > m_intTotalPage)
   
  m_intCurrentPage = m_intTotalPage;