最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 22:37:14
文档

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

超好用轻量级MVC分页控件JPager.Net:JPager.Net MVC好用的轻量级分页控件,好用到你无法想象,轻量到你无法想象。 JPager.Net MVC好用的轻量级分页控件,实现非常简单,使用也非常简单。 JPager.Net MVC好用的轻量级分页控件,代码精心推敲,经多人反复建议修改,最终成型使用中。非常好用分享给
推荐度:
导读超好用轻量级MVC分页控件JPager.Net:JPager.Net MVC好用的轻量级分页控件,好用到你无法想象,轻量到你无法想象。 JPager.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;

 //保存搜索条件
 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 = 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

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.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 

文档

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

超好用轻量级MVC分页控件JPager.Net:JPager.Net MVC好用的轻量级分页控件,好用到你无法想象,轻量到你无法想象。 JPager.Net MVC好用的轻量级分页控件,实现非常简单,使用也非常简单。 JPager.Net MVC好用的轻量级分页控件,代码精心推敲,经多人反复建议修改,最终成型使用中。非常好用分享给
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top