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 - ) * PageSize; /// <summary>
/// 请求URL
/// </summary>
public string RequetUrl => System.Web.HttpContext.Current.Request.Url.OriginalString; /// <summary>
/// 构造函数给当前页和页数初始化
/// </summary>
public PagerInBase()
{
if (PageIndex == ) PageIndex = ;
if (PageSize == ) PageSize = ;
}
}
}

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 PagerResult<T>
{
public int Code { get; set; }
public int Total { get; set; }
public IEnumerable<T> 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 == ) PageIndex = ;
if (RequestUrl.IndexOf("?", StringComparison.Ordinal) == -) RequestUrl += "?pageindex=1";
else
if (RequestUrl.IndexOf("&pageindex", StringComparison.Ordinal) == -&& RequestUrl.IndexOf("?pageindex", StringComparison.Ordinal) == -) 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,));
html.AppendFormat("<a href='{0}'> 上页 </a>", RequestUrl.GetUrl(PageIndex, PageIndex < ? : PageIndex - )); var si = PageIndex <= ? : PageIndex - ;
var ei = si + ; 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 - ? pageLen : PageIndex + ))); html.AppendFormat("<a href='{0}'> 尾页 </a>",
Math.Abs(Total) <=
? RequestUrl.GetUrl(PageIndex, )
: 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 PagerResult<User> { Code = , DataList = data, Total = count,
PageSize = param.PageSize,PageIndex = param.PageIndex,RequestUrl = param.RequetUrl};
return View(res);
} //测试数据
public List<User> PageContent()
{
var list = new List<User>();
for (var t = ; t < ; t++)
{
list.Add(new User
{
Id = t,
Name = "Joye.net"+t.ToString(),
Age = t + ,
Score = t,
Address = "http://yinrq.cnblogs.com/",
AddTime = DateTime.Now
});
} return list;
}
}
}

Models文件夹建User.cs和UserParams.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; }
}
}
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.PagerResult<JPager.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

代码云盘下载:https://yunpan.cn/cRYR7HJWtHiTz (提取码:6fef)

或者直接nuget获取JPager.net使用(jerry还没有上传,暂时还不支持)

【干货分享】JPager.Net MVC超好用轻量级分页控件的更多相关文章

  1. Net MVC轻量级分页控件

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

  2. 基于ASP.NET的MVC框架下的MvcPaper分页控件的使用技术

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using Webdiyer. ...

  3. MVC中的自定义标签分页控件,仅供大家学习!!

    public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, ...

  4. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. 基于存储过程的MVC开源分页控件--LYB.NET.SPPager

    摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...

  6. MVC——分页控件

    不管是什么类型的网站,分页都是必不可少的功能实现.在这里记录一下我自己接触过的分页控件: 一. MvcPager控件(记得项目里添加MvcPager.dll的引用) 这里面比较常用的就 ——@Html ...

  7. Mvc自定义分页控件

    MVC开发分页常常使用第三方控件,生成的分页HTML带有版权申明,虽然免费,但是总有的别扭.于是,某日,楼主闲来蛋疼,折腾了个自定义分页控件: 先来展示下效果图: 1>当分页不超过10页的时候, ...

  8. ASP.NET MVC中加载WebForms用户控件(.ascx)

    原文:ASP.NET MVC中加载WebForms用户控件(.ascx) 问题背景 博客园博客中的日历用的是ASP.NET WebForms的日历控件(System.Web.UI.WebControl ...

  9. ASP.NET MVC显示WebForm网页或UserControl控件

    ASP.NET MVC显示WebForm网页或UserControl控件 学习与使用ASP.NET MVC这样久,还是对asp.net念念不忘.能否在asp.net mvc去显示aspx或是user ...

随机推荐

  1. Mongodb Manual阅读笔记:CH8 复制集

    8 复制 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...

  2. sql server 小记——分区表(上)

    我们知道很多事情都存在一个分治的思想,同样的道理我们也可以用到数据表上,当一个表很大很大的时候,我们就会想到将表拆 分成很多小表,查询的时候就到各个小表去查,最后进行汇总返回给调用方来加速我们的查询速 ...

  3. 简析一下SQL Server里面Fast_Forword 和 SRROLL 的区别

    这次简单说说游标的分类. 先看看通常游标的语法 DECLARE cursor_name CURSOR [ LOCAL :局部游标,仅在当前会话有效 | GLOBAL : 全局游标,全局有效,可以 ] ...

  4. Windows下常用软件工具的命令

    Linux上主要操作是命令,懂一点linux知识的都知道,其实windows下边很多工具也是可以用命令来操作打开的,这样会提高效率,节省很多的时间.下边就记录一下常用的命令. 一.常用命令 1.远程桌 ...

  5. jquery——九宫格大转盘抽奖

    一.用到的图片 二.代码如下,重点是js部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Con ...

  6. RecycleView + CardView 控件简析

    今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...

  7. jmeter 函数助手里的P,property的使用

    1.函数助手里的 p及property的使用 ${__P(init,2)} , ${__property(init,start,200)} 可以自行定义变量名称,及变量的默认值 P 变量名为init, ...

  8. 转: rapidJSON与jsoncpp语法说明

    转:  http://www.voidcn.com/blog/hudejun007/article/p-1811986.html

  9. NOIP模拟赛 隔壁

    问题描述: 隔壁学校地形图可以通过一个高度矩阵表示,矩阵中每一个位置都有一个数0<=hij<=10^5表示这个坐标的海拔,我们姑且将其称为海拔图,容易发现,我们可以通过这个矩阵轻松算出隔壁 ...

  10. Android webview通过http get下载文件下载两次的问题及解决方法

    一.现象 一般通过Android webview进行下载文件的方法是 1.重写DownloadListener的onDownloadStart方法,在onDownloadStart方法中弹出对话框提示 ...