无刷新分页:

1.引入JQuery的NuGet程序包

2.引入程序包

3.引入MvcPager.dll  ,MvcPager.dll文件下载链接http://pan.baidu.com/s/1hsvBYcc  密码:baws

4.引入MvcPager.js 和MvcPager.min.js  文件下载链接(同上3所示)

5.代码编写

Controller:

public class HomeController : Controller
{
//
// GET: /Home/
int pageSize = ;
[HttpGet]
public ActionResult Index(int pageIndex = )
{
var list = PrepareUserList(); //list为取到的所有数据
PagedList<User> p_list = list.ToPagedList(pageIndex, pageSize);
if (Request.IsAjaxRequest()) //判断请求是否为Ajax请求
{
return PartialView("ShowPart", p_list);
}
return View(p_list);
}
[HttpPost]
public ActionResult Index(string keyword,int pageIndex = )
{
var list = PrepareUserList();
PagedList<User> p_list = list.ToPagedList(pageIndex, pageSize);
if (Request.IsAjaxRequest())
{
p_list = string.IsNullOrEmpty(keyword) ? p_list : list.Where(p=>p.Name.Contains(keyword)).ToPagedList(pageIndex, pageSize);
return PartialView("ShowPart",p_list);
}
return View(p_list);
} //此类是为了制造数据,方便可以不用从数据库调数据也能运行程序,若从数据库取数据则不需要此类
public List<User> PrepareUserList()
{
List<User> list = new List<User>();
User u1 = new User() { Id = , Address = "sda", Name = "das" };
User u11 = new User() { Id = , Address = "a", Name = "gffs" };
User u12 = new User() { Id = , Address = "b", Name = "dfts" };
User u13 = new User() { Id = , Address = "c", Name = "dfg" };
User u14 = new User() { Id = , Address = "sda", Name = "vb" };
User u15 = new User() { Id = , Address = "sa", Name = "hj" };
User u16 = new User() { Id = , Address = "eda", Name = "ui" };
User u10 = new User() { Id = , Address = "sda", Name = "we" };
User u110 = new User() { Id = , Address = "a", Name = "rf" };
User u120 = new User() { Id = , Address = "b", Name = "hy" };
User u130 = new User() { Id = , Address = "c", Name = "jy" };
User u140 = new User() { Id = , Address = "sda", Name = "nm" };
User u150 = new User() { Id = , Address = "sa", Name = "qr" };
User u160 = new User() { Id = , Address = "eda", Name = "ts" };
list.Add(u1);
list.Add(u11);
list.Add(u12);
list.Add(u13);
list.Add(u14);
list.Add(u15);
list.Add(u16);
list.Add(u10);
list.Add(u110);
list.Add(u120);
list.Add(u130);
list.Add(u140);
list.Add(u150);
list.Add(u160);
return list;
}
}

HomeController.cs

Index视图:

@{
Layout = null;
}
@using Webdiyer.WebControls.Mvc;
@model PagedList<N_Refresh.Models.User>
<!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/MvcPager.js"></script>
/*注意:这三个script文件是必须引用的文件,否则不能实现无刷新分页,Ajax请求过不去*/
</head>
<body>
<div>
@using (Ajax.BeginForm("Index", "Home", new RouteValueDictionary { { "id", "" } },
new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "list", InsertionMode = InsertionMode.Replace }, new RouteValueDictionary { {"id","searchForm"} }))
{
<div class="row">
<span class="col-md-2">姓名:</span>
<input name="keyword" type="text" class="col-md-3" />
<input type="submit" class="btn btn-primary btn-sm input-inline" value="搜索" />
</div>
}
</div>
<div id="list">
@{
Html.RenderPartial("ShowPart", Model);
}
</div>
<!--ShowPart是分部视图的名称 -->
</body>
</html>

Index.cshtml

分部视图ShowPart.cshtml

@using Webdiyer.WebControls.Mvc;
@model PagedList<N_Refresh.Models.User> <table class="table table-bordered table-hover center-block top">
<tr>
<td>姓名</td>
<td>地址</td>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Name</td>
<td>@item.Address</td>
</tr>
}
</table>
<div>
<div style="float:left;width:50%;">当前页 @Model.CurrentPageIndex 共 @Model.TotalPageCount 页,共 @Model.TotalItemCount 条记录 </div>
@Ajax.Pager(Model, new PagerOptions
{
PageIndexParameterName = "pageIndex",
ActionName = "Index",
HtmlAttributes = new Dictionary<string, object> { { "style", "float:right" } },
ContainerTagName = "ul",
CssClass = "pagination",
CurrentPagerItemTemplate = "<li class=\"active \"><a href=\"javascript:void(0)\">{0}</a></li>",
DisabledPagerItemTemplate = "<li class=\"disabled\"><a>{0}</a></li>",
PagerItemTemplate = "<li>{0}</li>",
Id = "bootstrappager",
AutoHide = false,
FirstPageText = "首页",
NextPageText = "下一页",
PrevPageText = "上一页",
LastPageText = "末页"
},
new MvcAjaxOptions
{
UpdateTargetId = "list", //此为无刷新分页做准备,list为数据表格外层包围的div的id
HttpMethod = "Post",
DataFormId = "searchForm" //此为无刷新搜索做准备,searchForm为搜索的form的id
})
</div>

6.忘记说了,模型类User.cs

public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}

6其实应该放在Controller之前,

至此,无刷新分页和搜索就完成了,

程序代码实现链接:http://pan.baidu.com/s/1eSh2VRW  密码:g1b1

欢迎大家进行批评指正

MvcPager.dll使用实现无刷新分页以及MvcPager的Nuget程序包实现刷新分页的更多相关文章

  1. MVC分页之MvcPager使用

    最近刚刚接触MVC不久,因项目中要用到分页,网上找了下资料,最后采用了MvcPager(http://www.webdiyer.com/),支持同步和Ajax异步分页.废话不多说了直接上代码. 一.M ...

  2. iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)

    一.推荐关注模块(一个控制器控制两个tableView) -- 数据的显示 刚开始加载数据值得注意的有以下几点 导航控制器会自动调整scrollView的contentInset,最好是取消系统的设置 ...

  3. 微信小程序之下拉刷新,上拉更多列表实现

    代码地址如下:http://www.demodashi.com/demo/11110.html 一.准备工作 首先需要下载小程序开发工具 官方下载地址: https://mp.weixin.qq.co ...

  4. python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序

    导入的时候报出了 ImportError 在windows上安装python 的模块后,导入模块时报 python ImportError: DLL load failed: %1 不是有效的 Win ...

  5. EF更新,数据库值变化,前台页面并不变化,刷新也不变化,重新运行程序则变化----开发中遇到的问题(已解决)

    首先说一下我遇到这个情况的代码情景,首先上错误代码 UserInfo userInfo = Session["UserInfo"] as UserInfo; ); 这段代码所呈现的 ...

  6. 数据分页处理系列之二:HBase表数据分页处理

      HBase是Hadoop大数据生态技术圈中的一项关键技术,是一种用于分布式存储大数据的列式数据库,关于HBase更加详细的介绍和技术细节,朋友们可以在网络上进行搜寻,笔者本人在接下来的日子里也会写 ...

  7. 如何快速开发树形列表和分页查询整合的WInform程序界面

    我在做Winform界面的时候,一般都是统一化处理,界面顶部放置一些字段条件供查询,下面就是分页查询列表,展示相关的数据.但有时候碰到一些表字段内容分类比较多,有一些特别重要,如果放在一个树形列表来进 ...

  8. vs2012 编译运行报 项目程序包Dsp.Bds.dll还原失败,找不到版本xxxxxx的程序包问题的解决方法

    原先vs2012程序运行项目是可以了,不会出现程序包Dsp.Bds.dll还原失败,找不到版本未2.0.1.0的程序包问题, 但是项目可以正常运行,每次调试看到下面一片红感觉不舒服 原因:可能当时我看 ...

  9. ImportError DLL load failed: %1 不是有效的 Win32 应用程序

    操作系统:win7 64位,安装mysqldb 后提示:ImportError DLL load failed: %1 不是有效的 Win32 应用程序,是由于安装的32位的 MySQL-Python ...

随机推荐

  1. SQL一对多特殊查询,取唯一一条

    主表: 辅表: 一个app对应多个apk,现在要取上线(Apk_Status最大的)的应用 select * from [dbo].[tbl_APP] as app join ( * from tbl ...

  2. CentOS 7 配置 samba服务器

    一.在服务器端上安装软件并进行相关配置(以下操作需用用户root进行): 1.安装samba: yum -y install samba samba-client 2.启动服务并设置开机启动: sys ...

  3. 面试题: !=!=未看12 略多 sql语句练习 非常 有用

    JAVA面试总结 2015年03月25日 16:53:40 阅读数:4306 刚才看到的,先转载过来,没准以后用到…… 面试总结 2013年8月6日: 问题2:Hibernate的核心接口有哪些?   ...

  4. 6.5 通过命令安装git

    本来是一头雾水,以为很麻烦,结果,一句命令就搞定: 安装完后,在搜索框搜索,即出现github.

  5. Python中的循环语句

    Python中有while循环和for循环 下面以一个小例子来说明一下用法,用户输入一些数字,输出这些数字中的最大值和最小值 array = [5,4,3,1] for i in array: pri ...

  6. vue -- 项目调试

    方式1:vue-devtools插件 vue-devtools是一款基于chrome游览器的插件,用于调试vue应用,这可以极大地提高我们的调试效率. 使用步骤 1. 到github下载:https: ...

  7. Codeforces Round #522 Div2C(思维)

    #include<bits/stdc++.h>using namespace std;int a[200007];int b[200007][7];int ans[200007];int ...

  8. CodeForces 110C 【构造】

    思路: 7越多越好,然后从7最多个数枚举过去,判断一下剩下的能不能用4解决就好了: #include <bits/stdc++.h> using namespace std; typede ...

  9. Mybatis学习笔记之一——牛刀小试

    1.Mybaits核心对象SqlSession的作用: (1)向SQL语句传入参数: (2)执行SQl语句: (3)获取执行SQL语句的结果: (4)事务的控制: 2.核心配置文件(Configrat ...

  10. java 多线程学习笔记(一) -- 计算密集型任务

    最近在看<Java虚拟机并发编程>,在此记录一些重要的东东. 线程数的确定:1. 获取系统可用的处理器核心数:int numOfCores = Runtime.getRuntime().a ...