1、添加引用: mvcPager

  版本高的提供的功能也更多。

  注:下载了第一个,但是里面的一些字段是只读的。(eg:PagedList<T> .TotalItemCount)这是不符合的。

2、添加控制器

  在控制器中添加方法 MvcPagerAjax(),从db获取数据

/// <summary>
/// 分页,局部刷新。。直接请求该action
/// </summary>
/// <param name="pageIndex">此参数很重要,由分页ajax中传过来(PageIndexParameterName)</param>
/// <param name="pageSize"></param>
/// <returns></returns>
public ActionResult MvcPagerAjax(int pageIndex = )
{
int pageSize = ; //每页的数据条数
List<MovieDB> lists = db.Movies.ToList();
int counts = lists.Count;
PagedList<MovieDB> lst = lists.AsQueryable().ToPagedList(pageIndex, pageSize);
lst.TotalItemCount = counts;
lst.CurrentPageIndex = pageIndex;
if (Request.IsAjaxRequest())
{
return PartialView("PartailViewMList", lst); //分页,异步请求
}
else
{
return View("Mlist", lst); //初始加载时,不是ajax
}
}

 

3、添加主页面

  Mlist.cshtml

@model PagedList<MVCTest.Models.MovieDB>
@using Webdiyer.WebControls.Mvc @{
ViewBag.Title = "MList";
} @{
Html.RenderPartial("PartailViewMList", Model);
} @*使用Ajax分页模式时,必须用Html.RegisterMvcPagerScriptResource方法注册客户端脚本,否则无法正常分页;*@
@*需要再_Layout中加入 @RenderSection("scripts", required: false)*@
@section Scripts{@{Html.RegisterMvcPagerScriptResource();}}

4、添加分部页

PartailViewMList.cshtml

  名称 PartailViewMList。就是controller中需要ajax返回的页面return PartialView("PartailViewMList", lst);

  分页控件:http://www.webdiyer.com/mvcpager/demos/applycss/ 可以在官网上找各种样式

视图部分

@model PagedList<MVCTest.Models.MovieDB>
@using Webdiyer.WebControls.Mvc; <div id="divList">
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Director</th>
<th>Date</th>
</tr>
@if (Model != null && Model.Count > 0)
{
foreach (var item in Model.ToList())
{
<tr>
<td>@item.ID</td>
<td>@item.Title</td>
<td>@item.Director </td>
<td>@item.Date</td>
</tr>
}
}
</table> <div class="row" style="height:80px">
<div class="col-md-2" style="margin:20px 0">
共有 @Model.TotalItemCount 条记录 @Model.CurrentPageIndex/@Model.TotalPageCount
</div>
<div class="col-md-6">
@Ajax.Pager(Model, new PagerOptions
{
//PrevPageText = "上页",
//NextPageText = "下页",
//FirstPageText = "首页",
//LastPageText = "尾页",
PageIndexParameterName = "pageIndex", //此参数传入controller
NumericPagerItemCount = 5, //显示几个分页号码数据(可以控制省略号…的显示)
ContainerTagName = "ul", //分页标签
CssClass = "pagination", //分页样式,位于bootstrap.css中
CurrentPagerItemTemplate = "<li class=\"active\"><a href=\"#\">{0}</a></li>",
DisabledPagerItemTemplate = "<li class=\"disabled\"><a>{0}</a></li>",
PagerItemTemplate = "<li>{0}</li>",
Id = "bootstrappager",
//PageIndexBoxId = "pageIndexBox", //下拉框
//GoToButtonId = "goToBtn", //不设置的话,则页索引文本或下拉框中的值改变时即自动实现分页跳转
PageIndexBoxId = "pageIndexBox2", //文本输入框
GoToButtonId = "goToBtn2" //不设置的话,则页索引文本或下拉框中的值改变时即自动实现分页跳转
}, new MvcAjaxOptions { UpdateTargetId = "divList" })
@*或者 }).AjaxOptions(a => a.SetUpdateTargetId("divList"))*@
</div>
<div class="col-md-4">
<div class="input-group" style="width:120px;margin:20px 0">
@*<select id="pageIndexBox" class="form-control input-sm"></select>
<span class="input-group-btn"><button class="btn btn-primary btn-sm" id="goToBtn">跳转</button></span>*@
<input type="text" id="pageIndexBox2" class="form-control input-sm" />
<span class="input-group-btn"><button class="btn btn-primary btn-sm" id="goToBtn2">跳转</button></span>
</div>
</div>
</div>
@*说明:要为MvcPager指定页索引输入或选择框,请将PagerOptions.PageIndexBoxId设置为该文本框或下拉框的客户端id,将PagerOptions.GoToButtonId设置为跳转按钮的客户端id,若未设置PagerOptions.GoToButtonId,则页索引文本或下拉框中的值改变时即自动实现分页跳转,否则需要点击跳转按钮进行跳转。*@
</div>

分页默认是Get提交

5、翻页时 附带参数问题

场景:假如有订单查询页面,带参数查询出一些结果。在点第二页的时候,需要保留文本框中的查询参数。

一般情况下 表单提交才用Post,此种情况下 翻页是不会带参数的。需要将post改为Get才行。

 @using (Html.BeginForm("List", "ExpertBooking", FormMethod.Get, new { id = "frmReport" }))

【MVC】使用MvcPager进行分页的更多相关文章

  1. 【MVC】MvcPager分页及边界传递数据示例

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

  2. MVC中使用MVCPager简单分页

    一.建立数据库以及建立MVC项目 自己随便建立一个数据库,并且添加数据.我建立的数据库如下. 二.建立LINQ to SQL映射. 然后一步步点确定 三.编写代码 在Controllers中建立控制器 ...

  3. ASP.NET MVC中使用MvcPager异步分页+在分页中复选框下一页上一页也保持选中

    ASP.NET MVC 分页使用的是作者杨涛的MvcPager分页控件  地址:http://www.webdiyer.com/mvcpager/demos/ajaxpaging/ 这个分页控件在里面 ...

  4. .net MVC 中“MvcPager” 插件的简单使用。

    .net MVC 中提供了一个分页组件"MvcPager",用起来还算方便,实用性较强. 简单写一下使用方法,如有不足的地方,请各位大大给小弟指正出来. 一.准备工作 使用这个组件 ...

  5. MVC001之mvcpager简单分页

    描述:用mvcpager实现简单分页功能 参考网址: http://www.cnblogs.com/iamlilinfeng/archive/2013/03/11/2951460.html http: ...

  6. MVC3学习:利用mvc3+ajax结合MVCPager实现分页

    本例使用表格Users(Uid,UserName,PassWord),数据库访问使用EF first code. public class Users { [Key] public int Uid { ...

  7. MVC如何使用开源分页插件shenniu.pager.js

    最近比较忙,前期忙公司手机端接口项目,各种开发+调试+发布现在几乎上线无问题了:虽然公司项目忙不过在期间抽空做了两件个人觉得有意义的事情,一者使用aspnetcore开发了个人线上项目(要说线上其实只 ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页

    系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...

  9. MVC默认路由实现分页-PagerExtend.dll

    这两天在群里有人咨询有没有现成的.net mvc分页方法,由此写了一个简单分页工具,这里简单分享下实现思路,代码,希望能对大家有些帮助,鼓励大家多造些轮子还是好的. A.效果(这里用了bootstra ...

随机推荐

  1. Oracle 起诉 Google 事件

    最近,Google 和 Oracle 纠缠多年的“Java 侵权案”又有了新的判决结果.Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金.这个案件还引发关于 API(应用程序编程接 ...

  2. 15分钟入门lua

    目录:[ - ] -- 1. Variables and flow control. -- 2. Functions. -- 3. Tables. -- 3.1 Metatables and meta ...

  3. (转)不要自称是程序员,我十多年的 IT 职场总结

    其他: 我是一名程序员,工作很努力,为什么绩效还总是垫底? 外企,中年失业何去何从? 来公司半年了,也悟出了一些道理. 如果我可以给每个工程教育增加一门课,它不会涉及编译器.门电路或是时间复杂度,而是 ...

  4. 4-1 contag_tag:返回HTMLtag.

    jquery已经过时,做一遍,了解其他知识点. contag_tag(name, content_or_options_with_block = nil, options = nil, &bl ...

  5. Linux 下载最新kubectl版本的命令:

    ubuntu centos下通用 第一步.下载最新版本的命令: curl -LO https://storage.googleapis.com/kubernetes-release/release/$ ...

  6. ccf数字排序

    问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输入格式 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所 ...

  7. UVA-1533 Moving Pegs (路径寻找问题)

    Description   Venture MFG Company, Inc. has made a game board. This game board has 15 holes and thes ...

  8. C# Winform程序以及窗体运行的唯一性汇总

    经常看到有人讨论程序运行唯一性或者窗体运行的唯一性问题.我之前也写了一些文章,在此把它进行整理汇总. 如果是程序的唯一性问题,我之前的一篇文章已经写得很全面,可以参看. C# Winform如何使自己 ...

  9. BZOJ3544 [ONTAK2010]Creative Accounting

    看不懂题,就不能写的稍微像人话点吗我去... 题目就是要找一段区间使得Σai mod m的值最大. 于是嘛...前缀和一下再贪心就好了. 先求出前i个数的前缀和s,然后用s更新解. 还有可能就是前面的 ...

  10. hadoop kafka import/export data (8)

    reference: http://kafka.apache.org/quickstart need to solve issue ISSUE 1: [2019-01-29 15:59:39,272] ...