栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > asp

简单好用的ASP.NET分页类(支持AJAX、自定义文字)

asp 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单好用的ASP.NET分页类(支持AJAX、自定义文字)

在做网站没用 JS UI控件时 很实用

用法:

var ps=new PageString();
 
 
 
 ps.SetIsEnglish = true;// 是否是英文    (默认:false)
 ps.SetIsShowText = true;//是否显示分页文字 (默认:true)
 //ps.TextFormat=""      (默认值:《span class="pagetext"》《strong》总共《/strong》:{0} 条 《strong》当前《/strong》:{1}/{2}《/span》)
 //ps.SetPageIndexName Request["pageIndex"](默认值:"pageIndex")
 ps.SetIsAjax = false;//   (默认值:"false")
 
 
 int total = 10000;
 int pageSize = 10;
 int pageIndex = Convert.ToInt32(Request["pageIndex"]);
 
 var page = ps.ToString(total, pageSize, pageIndex, "/UI/PageStringTest.aspx?");
 
 //获取 page html 输出
Response.Write(page);

效果:

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Regularexpressions;
 
namespace SyntacticSugar
{
  /// 
  /// ** 描述:分页类
  /// ** 创始时间:2015-5-29
  /// ** 修改时间:-
  /// ** 作者:sunkaixuan
  public class PageString
  {
    /// 
    /// 是否是英文   (默认:false)
    /// 
    public bool SetIsEnglish { get; set; }
    /// 
    /// 是否显示分页文字(默认:true)
    /// 
    public bool SetIsShowText { get; set; }
    /// 
    /// 样式      (默认:"pagination")
    /// 
    public string SetClassName { get; set; }
    /// 
    /// 分页参数名   (默认:"pageIndex")
    /// 
    public string SetPageIndexName { get; set; }
    /// 
    /// 是否是异步 同步 href='' 异步 onclick=ajaxPage()  (默认:false)
    /// 
    public bool SetIsAjax { get; set; }
 
    /// 
    /// 自定义文字
    /// string.Format("{0}{1}{2}","总记录数","当前页数","总页数")
    /// 默认值:《span class="pagetext"》《strong》总共《/strong》:{0} 条 《strong》当前《/strong》:{1}/{2}《/span》
    /// 
    public string SetTextFormat { get; set; }
 
    public PageString()
    {
      SetIsEnglish = false;
      SetIsShowText = true;
      SetTextFormat = "总共:{0} 条 当前:{1}/{2} ";
      SetClassName = "pagination";
      SetPageIndexName = "pageIndex";
      SetIsAjax = false;
    }
 
    
 
    /// 
    /// 分页算法<一>共20页 首页 上一页 1 2 3 4 5 6 7 8 9 10 下一页 末页
    /// 
    /// 总记录数
    /// 每页记录数
    /// 当前页数
    /// Url参数
    /// 
    public string ToString(int total, int pageSize, int pageIndex, string query_string)
    {
 
      int allpage = 0;
      int next = 0;
      int pre = 0;
      int startcount = 0;
      int endcount = 0;
      StringBuilder pagestr = new StringBuilder();
      pageIndex = pageIndex == 0 ? 1 : pageIndex;
      pagestr.AppendFormat("", SetClassName);
      if (pageIndex < 1) { pageIndex = 1; }
      //计算总页数
      if (pageSize != 0)
      {
 allpage = (total / pageSize);
 allpage = ((total % pageSize) != 0 ? allpage + 1 : allpage);
 allpage = (allpage == 0 ? 1 : allpage);
      }
      next = pageIndex + 1;
      pre = pageIndex - 1;
      startcount = (pageIndex + 5) > allpage ? allpage - 9 : pageIndex - 4;//中间页起始序号
      //中间页终止序号
      endcount = pageIndex < 5 ? 10 : pageIndex + 5;
      if (startcount < 1) { startcount = 1; } //为了避免输出的时候产生负数,设置如果小于1就从序号1开始
      if (allpage < endcount) { endcount = allpage; }//页码+5的可能性就会产生最终输出序号大于总页码,那么就要将其控制在页码数之内
 
      bool isFirst = pageIndex == 1;
      bool isLast = pageIndex == allpage;
 
      if (SetIsShowText)
 pagestr.AppendFormat(SetTextFormat, total, pageIndex, allpage);
 
      if (isFirst)
      {
 pagestr.Append("首页 上一页");
      }
      else
      {
 pagestr.AppendFormat("首页 上一页", query_string, pre);
      }
      //中间页处理,这个增加时间复杂度,减小空间复杂度
      for (int i = startcount; i <= endcount; i++)
      {
 bool isCurent = pageIndex == i;
 if (isCurent)
 {
   pagestr.Append(" " + i + "");
 }
 else
 {
   pagestr.Append("  " + i + "");
 }
 
      }
      if (isLast)
      {
 pagestr.Append("下一页 末页");
      }
      else
      {
 pagestr.Append(" 下一页 末页");
      }
      pagestr.AppendFormat("");
      return ConversionData(pagestr.ToString());
    }
 
    private string ConversionData(string page)
    {
      if (SetIsEnglish)
      {
 page= page.Replace("上一页", "Previous").Replace("下一页", "Next").Replace("总共", "total").Replace("当前", "Current").Replace("条", "records").Replace("首页", "First").Replace("末页", "Last");
      }
      if (SetIsAjax)
      {
 var matches = Regex.Matches(page, @"href="".*?""",RegexOptions.Singleline);
 if (matches != null && matches.Count > 0)
 {
   foreach (Match m in matches)
   {
     page = page.Replace(m.Value, string.Format("class="click" onclick="ajaxPage('{0}')"", Regex.Match(m.Value, string.Format(@"{0}=(d+)", SetPageIndexName)).Groups[1].Value));
   }
 }
      }
      return page;
 
    }
 
  }
 
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/56831.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号