【干货分享】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 ...
随机推荐
- Hadoop自定义分组Group
matadata: hadoop a spark a hive a hbase a tachyon a storm a redis a 自定义分组 import org.apache.hadoop.c ...
- MySQL 调优基础(五) Linux网络
1. TCP/IP模型 我们一般知道OSI的网络参考模型是分为7层:“应表会传网数物”——应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.而实际的Linux网络层协议是参照了OSI标准,但 ...
- json字符串的拼接,并转换为json对象
<html> <head> <script> var qianzhui = "cc"; var test1=""; func ...
- spring服务定位器类
此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:通过持有的Spring应用场景ApplicationContext,可在任何地方获取bean. 1. 服务定位器类:S ...
- 必须知道的八大种排序算法【java实现】(三) 归并排序算法、堆排序算法详解
一.归并排序算法 基本思想: 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列. 归并 ...
- [转]net中哈希表的使用 Hashtable
本文转自:http://www.cnblogs.com/gsk99/archive/2011/08/28/2155988.html 以下是PetShop中DBHelper中的使用过程: //创建哈希表 ...
- 用PS设计等高线效果的背景图片
有些简单的单网页,如果利用等高线效果的背景图片,再配合合适的背景色,能达到绚丽的效果.如下图所示: 本文就介绍该等高线效果的背景图片是如何制作的.Follow Me!!!! 1.新建文档,尺寸:100 ...
- POJ3967Ideal Path[反向bfs 层次图]
Ideal Path Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 1754 Accepted: 240 Descri ...
- 手机开启HDR后拍照有什么不同?
转自http://www.leiphone.com/news/201406/hdr-pic.html HDR这词大家可能并不陌生,但大部分人只是听过而已,在脑子并没有太多的概念,可能只是简单的认为HD ...
- WCF添加服务失败一则
原因是本机开发IIS没有安装HTTPS证书 将红色的字注释掉就好了! <services> <service behaviorConfiguration="basicSer ...