Net MVC轻量级分页控件
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 - 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 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 == 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; //获取数据集合
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 = 0, 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 = 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

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"/>
Age:
<input name="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>

github:https://github.com/decadestory/JPager.Net
代码云盘下载:https://yunpan.cn/cRYR7HJWtHiTz (提取码:6fef)
或者直接nuget获取JPager.net使用(jerry还没有上传,暂时还不支持)
Net MVC轻量级分页控件的更多相关文章
- 【干货分享】JPager.Net MVC超好用轻量级分页控件
JPager.Net MVC好用的轻量级分页控件,好用到你无法想象,轻量到你无法想象. JPager.Net MVC好用的轻量级分页控件,实现非常简单,使用也非常简单. JPager.Net M ...
- 基于存储过程的MVC开源分页控件--LYB.NET.SPPager
摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...
- 基于存储过程的MVC开源分页控件
基于存储过程的MVC开源分页控件--LYB.NET.SPPager 摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件M ...
- Mvc自定义分页控件
MVC开发分页常常使用第三方控件,生成的分页HTML带有版权申明,虽然免费,但是总有的别扭.于是,某日,楼主闲来蛋疼,折腾了个自定义分页控件: 先来展示下效果图: 1>当分页不超过10页的时候, ...
- MVC Page分页控件
MVCPage帮助类 控制器代码 public ActionResult Article(int? page) { //Session["ArticleClass"] = cont ...
- 基于KO+bootstrap+MVC的分页控件
JS: /// <reference path="../knockout-3.2.0.js" /> var ViewModel = function (data) { ...
- MVC——分页控件
不管是什么类型的网站,分页都是必不可少的功能实现.在这里记录一下我自己接触过的分页控件: 一. MvcPager控件(记得项目里添加MvcPager.dll的引用) 这里面比较常用的就 ——@Html ...
- MVC无刷新查询,PagedList分页控件使用,导出Excel
使用MVC开发也有一段时间了,总结下无刷新部分视图的使用.PagedList分页控件的使用. @using PagedList @model StaticPagedList<T> < ...
- asp.net mvc简单实现基于Razor的分页控件
最近在写一些web应用了解了一下asp.net mvc发现的确好用,所以直接就干上了.不过在使用asp.net mvc的Razor模板的情况并不向传统webform那样可以使用控件.但从Razor的功 ...
随机推荐
- win64位 apache2.4 php5.4 mysql5.6
apache2.4 php5.4 mysql5.6 源文件下载 +以前的配置数据参考 链接:http://pan.baidu.com/s/1skfmGyT 密码:hqtp 比较好的参考资料 http: ...
- C# Programming Study #2
readonly (C# Reference) readonly 关键字是可以在字段上使用的修饰符. 当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者 ...
- Windows Phone 8初学者开发—第3部分:编写第一个Windows Phone 8应用程序
原文 Windows Phone 8初学者开发—第3部分:编写第一个Windows Phone 8应用程序 原文地址: http://channel9.msdn.com/Series/Windows- ...
- 安装好maven后,在cmd中运行mvn报一下的错误
当然报错,你这个路径下并没有pom.xml文件.你可以运行这个命令: mvn -version.
- 第二种:NSObject
- (void)viewDidLoad { [super viewDidLoad]; /** * 开启子线程的方式之一:NSObject */ // 第一个参数:selector // 第二个参数:方 ...
- POJ 1947 - Rebuilding Roads 树型DP(泛化背包转移)..
dp[x][y]表示以x为根的子树要变成有y个点..最少需要减去的边树... 最终ans=max(dp[i][P]+t) < i=(1,n) , t = i是否为整棵树的根 > 更新的时 ...
- iOS之UITableViewCell左右滑动效果
首先在 UITableViewCell.h 中声明一个代理 @protocol UITableViewCellSlideDelegate <UITableViewDelegate> @op ...
- 学习OpenBlas
编译 从OpenBlas Home Page 上下载源代码.make, make install 使用 level 1 向量-向量 操作 #include <iostream> #incl ...
- css中的定位
上一篇博客,我大概介绍了下浮动的使用及行为.其实在整个文档布局中,定位也对我们整个的页面排版有非常好的帮助,当然前提是使用得当. 一.定位分类: a.静态定位 position:static; ...
- POJ 1562(L - 暴力求解、DFS)
油田问题(L - 暴力求解.DFS) Description The GeoSurvComp geologic survey company is responsible for detecting ...