• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    超好用轻量级MVC分页控件JPager.Net

    JPager.Net  MVC好用的轻量级分页控件,好用到你无法想象,轻量到你无法想象。

    JPager.Net  MVC好用的轻量级分页控件,实现非常简单,使用也非常简单。

    JPager.Net  MVC好用的轻量级分页控件,代码精心推敲,经多人反复建议修改,最终成型使用中。非常好用分享给大家。源代码一共放出来。先上个效果图:

    JPager.Net  MVC好用的轻量级分页控件JPager.Net .dll核心代码

    PagerInBase.cs

    namespace JPager.Net
    {
      /// summary>
      /// 分页基础类
      /// /summary>
      public class PagerInBase
      {
        /// summary>
        /// 当前页
        /// /summary>
        public int PageIndex { get; set; }
    
        /// summary>
        /// 页数
        /// /summary>
        public int PageSize { get; set; }
    
        //跳过序列中指定数量的元素
        public int Skip => (PageIndex - 1) * PageSize;
    
        /// summary>
        /// 请求URL
        /// /summary>
        public string RequetUrl => System.Web.HttpContext.Current.Request.Url.OriginalString;
    
        /// summary>
        /// 构造函数给当前页和页数初始化
        /// /summary>
        public PagerInBase()
        {
          if (PageIndex == 0) PageIndex = 1;
          if (PageSize == 0) PageSize = 10;
        }
      }
    }
    
    

    PagerResult.cs

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace JPager.Net
    {
      /// summary>
      /// ULR拼装
      /// /summary>
      internal static class Exts
      {
        public static string GetUrl(this string url, int curIndex, int reps)
        {
          return url.Replace("pageindex=" + curIndex.ToString(), "pageindex=" + reps.ToString());
        }
      }
    
      /// summary>
      /// 分页核心代码
      /// /summary>
      /// typeparam name="T">/typeparam>
      public class PagerResultT>
      {
        public int Code { get; set; }
        public int Total { get; set; }
        public IEnumerableT> DataList { get; set; }     
        public int PageSize { get; set; }
        public int PageIndex { get; set; }
        public string RequestUrl { get; set; }
    
        /// summary>
        /// 分页页码Html
        /// /summary>
        /// param name="cssClass">默认样式:jpager/param>
        /// returns>/returns>
        public string PagerHtml(string cssClass="jpager")
        {
          if (PageIndex == 0) PageIndex = 1;
          if (RequestUrl.IndexOf("?", StringComparison.Ordinal) == -1) RequestUrl += "?pageindex=1";
          else
          if (RequestUrl.IndexOf("pageindex", StringComparison.Ordinal) == -1 RequestUrl.IndexOf("?pageindex", StringComparison.Ordinal) == -1) RequestUrl += "pageindex=1";
          
          var html = new StringBuilder();
          html.AppendFormat("span class='{0}'>", cssClass);
          var pageLen = Math.Ceiling((double)Total / PageSize);
          html.AppendFormat("a href='{0}'> 首页 /a>", RequestUrl.GetUrl(PageIndex,1));
          html.AppendFormat("a href='{0}'> 上页 /a>", RequestUrl.GetUrl(PageIndex, PageIndex  2 ? 1 : PageIndex - 1));
    
          var si = PageIndex = 6 ? 1 : PageIndex - 5;
          var ei = si + 9;
    
          while (si = pageLen  si = ei)
            html.AppendFormat(
              si == PageIndex
                ? "a style='color:black;border:none;' href='{0}'> {1} /a>"
                : "a href='{0}'> {1} /a>", RequestUrl.GetUrl(PageIndex, si), si++);
    
          html.AppendFormat("a href='{0}'> 下页 /a>", RequestUrl.GetUrl(PageIndex, (int)(PageIndex > pageLen - 1 ? pageLen : PageIndex + 1)));
    
          html.AppendFormat("a href='{0}'> 尾页 /a>",
            Math.Abs(Total) = 0 
            ? RequestUrl.GetUrl(PageIndex, 1) 
            : RequestUrl.GetUrl(PageIndex, (int) pageLen));
    
          html.Append(@"/span>");
          return html.ToString();
    
        }
        
      }
    
    }
    
    

    使用方法:

    HomeController.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web.Mvc;
    using JPager.Net;
    using JPager.Net.Web.Models;
    
    namespace JPager.Net.Web.Controllers
    {
      public class HomeController : Controller
      {
        public ActionResult Index(UserParams param)
        {
    
          //每页显示的条数默认10
          //param.PageSize = 10;
    
          //保存搜索条件
          ViewBag.SearchName = param.Name;
          ViewBag.SearchAge = param.Age;
    
          //获取数据集合
          var list = PageContent(); 
    
          //根据条件检索
          var query = param.Name!=null ? 
            list.Where(t=>t.Name.Contains(param.Name)).ToList() :
            list.ToList();
    
          //分页数据
          var data = query.Skip(param.Skip).Take(param.PageSize);
    
          //总页数
          var count = query.Count;
    
          var res = new PagerResultUser> { Code = 0, DataList = data, Total = count,
            PageSize = param.PageSize,PageIndex = param.PageIndex,RequestUrl = param.RequetUrl};
          return View(res);
        }
         
        //测试数据                        
        public ListUser> PageContent()
        {
          var list = new ListUser>();
          for (var t = 0; t  10000; t++)
          {
            list.Add(new User
            {
              Id = t,
              Name = "Joye.net"+t.ToString(),
              Age = t + 10,
              Score = t,
              Address = "http://yinrq.cnblogs.com/",
              AddTime = DateTime.Now
            });
          }
    
          return list;
        }
      }
    }
    
    

    Models文件夹建User.cs和UserParams.cs

    User.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace JPager.Net.Web.Models
    {
      public class UserParams:JPager.Net.PagerInBase
      {
        public int Id { get; set; }
        public string Name { get; set; }
        public int ? Age { get; set; }
        public int Score { get; set; }
        public string Address { get; set; }
        public DateTime AddTime { get; set; }
      }
    }
    
    

    UserParams.cs

    using System;
    
    namespace JPager.Net.Web.Models
    {
      public class User
      {
        public int Id { get; set; } 
        public string Name { get; set; }
        public int Age { get; set; }
        public int Score { get; set; }
        public string Address { get; set; }
        public DateTime AddTime { get; set; }
      }
    }
    
    

    view显示

    @model JPager.Net.PagerResultJPager.Net.Web.Models.User>
    @{
      ViewBag.Title = "Index";
    }
    
    h2>JPager.Net MVC好用的轻量级分页控件/h2>
    div>
      div>
        form method="get">Name:
          input name="Name" id="Name" />
         Age:
          input name="Age" id="Age"/>
          input type="submit" value="查询" />
        /form>
      /div>
      table>
        tr>
          th>ID/th>
          th>Name/th>
          th>Age/th>
          th>Score/th>
          th>Address/th>
          th>AddTime/th>
        /tr>
        @foreach (JPager.Net.Web.Models.User item in Model.DataList)
        {
          tr>
            td>@item.Id/td>
            td>@item.Name/td>
            td>@item.Age/td>
            td>@item.Score/td>
            td>a href="@item.Address" target="_target">@item.Address/a>/td>
            td>@item.AddTime/td>
          /tr>
        }
      /table>
    
    /div>
    div>
      @Html.Raw(Model.PagerHtml()) 共 @Model.Total 条
    /div>
    
    script type="text/javascript">
      //保持搜索条件
      $(function () {
        $('#Name').val('@ViewBag.SearchName');
        $('#Age').val('@ViewBag.SearchAge');
      });
    /script>
    
    

    github:https://github.com/decadestory/JPager.Net 

    您可能感兴趣的文章:
    • Java简单实现SpringMVC+MyBatis分页插件
    • ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedList.Mvc)
    • MVC+jQuery.Ajax异步实现增删改查和分页
    • MVC分页之MvcPager使用详解
    • SpringMvc+Mybatis+Pagehelper分页详解
    • springmvc 分页查询的简单实现示例代码
    • 基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
    • ASP.NET MVC4 HtmlHelper扩展类,实现分页功能
    • ASP.NET MVC分页和排序功能实现
    • MVC生成页码选择器返回HTML代码详解
    上一篇:VS2015中C#版本6.0的新特性 你需要知道
    下一篇:解析ABP框架领域层中的实体类与仓储类
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    超好用轻量级MVC分页控件JPager.Net 超,好用,轻量级,MVC,分页,