【干货分享】JPager.Net MVC超好用轻量级分页控件
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超好用轻量级分页控件的更多相关文章
- Net MVC轻量级分页控件
JPager.Net MVC超好用轻量级分页控件 JPager.Net MVC好用的轻量级分页控件,好用到你无法想象,轻量到你无法想象. JPager.Net MVC好用的轻量级分页控件,实现 ...
- 基于ASP.NET的MVC框架下的MvcPaper分页控件的使用技术
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Webdiyer. ...
- MVC中的自定义标签分页控件,仅供大家学习!!
public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 基于存储过程的MVC开源分页控件--LYB.NET.SPPager
摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...
- MVC——分页控件
不管是什么类型的网站,分页都是必不可少的功能实现.在这里记录一下我自己接触过的分页控件: 一. MvcPager控件(记得项目里添加MvcPager.dll的引用) 这里面比较常用的就 ——@Html ...
- Mvc自定义分页控件
MVC开发分页常常使用第三方控件,生成的分页HTML带有版权申明,虽然免费,但是总有的别扭.于是,某日,楼主闲来蛋疼,折腾了个自定义分页控件: 先来展示下效果图: 1>当分页不超过10页的时候, ...
- ASP.NET MVC中加载WebForms用户控件(.ascx)
原文:ASP.NET MVC中加载WebForms用户控件(.ascx) 问题背景 博客园博客中的日历用的是ASP.NET WebForms的日历控件(System.Web.UI.WebControl ...
- ASP.NET MVC显示WebForm网页或UserControl控件
ASP.NET MVC显示WebForm网页或UserControl控件 学习与使用ASP.NET MVC这样久,还是对asp.net念念不忘.能否在asp.net mvc去显示aspx或是user ...
随机推荐
- mysql-3 检索数据(1)
SELECT 语句 SELECT检索表数据,必须至少给出两条信息--------想选择什么,以及从什么地方选择. 检索一个列 SELECT prod_name FROM products; 上述语句利 ...
- STL——遍历 删除 set 元素
==================================声明================================== 本文版权归作者所有. 本文原创,转载必须在正文中显要地注明 ...
- MongoDB与衍生版的TokuMX对比
为什么会出现TokuMX呢? 查阅大量的资料和翻阅一些大牛的博客发现,MongoDB作为nosql派别的一个典型非关系型数据库其实存在许多缺陷不足之处. 然后肯定就会有有人跳出来,来做一个衍生的东西, ...
- 字典dictionary
字典,即我们可以通过索引来查找更详细的内容.每个item都是由一对index:value构成的 索引可以有副本,但是试图根据存在副本的索引访问元素时,只会取最靠后的那个. 索引必须是immutable ...
- x01.os.10: 输入输出
从 x01.Lab.Download 中下载源代码,进入工程目录,make 后再 bochs,即可见到如下界面: 随便打几个字,ok!按 F2,可切换到第二个终端,界面如下: 当然,按 F3 还可切换 ...
- php cli方式下获取服务器ip
(未整理....) (1)php cli方式下获取服务器ip [php] function getServerIp(){ $ss = exec('/sbin/ifconfig et ...
- 虚拟机centos6.5 --安装jdk
1.首先卸载默认安装的openjdk,如下 rpm -qa | grep java #查看当前是否已经安装了跟java有关的包 yum -y remove java #卸载 rpm -qa |grep ...
- jquery——九宫格大转盘抽奖
一.用到的图片 二.代码如下,重点是js部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Con ...
- [转]SQL 操作结果集 -并集、差集、交集、结果集排序
本文转自:http://www.cnblogs.com/kissdodog/archive/2013/06/24/3152743.html 操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试 ...
- 怎样实现ZBrush中的智能对称
ZBrush软件智能化和人性化的工作流程让用户在创作中提高工作效率,体验创作乐趣,说起智能化不得不提的就是ZBrush给我们提供的智能对称功能,所谓的智能对称就是当您在编辑其中一半的物体模型时,执行相 ...