MVC3学习:利用mvc3+ajax结合MVCPager实现分页
本例使用表格Users(Uid,UserName,PassWord),数据库访问使用EF first code.
public class Users
{
[Key]
public int Uid { get; set; }
public string UserName { get; set; }
public string PassWord { get; set; } }
第一步:下载MVCPager.dll,添加到引用中。
MVCPager分页控件和AspNetPager分页控件是同一作者:陕西吴起娃,相信以前很多人都用过他的AspNetPager分页控件。MVCPager.dll可到他的个人主页去下载 http://www.webdiyer.com/
第二步:添加命名空间
打开view文件夹中下的web.config,添加两个命名空间。
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Webdiyer.WebControls.Mvc"/>
<add namespace="ajaxDemo.Models"/>
</namespaces>
</pages>
做这一步的目的,是为view文件夹下的所有视图统一添加命名空间,就不需要每一个去单独添加。<add namespace="Webdiyer.WebControls.Mvc"/>这个命名空间,就是MVCPager分页控件的命名空间。<add namespace="ajaxDemo.Models"/>是您的项目下的Models。此处我的项目名称是ajaxDemo。
第三步:制作分部视图
ajax分页,是将数据分好后,放在一个分部视图中,然后再将分部视图放在主视图中。
根据模板,创建一个list的分部视图,我取名为UserPager.cshtml
@model PagedList<Users> //此处需要修改 @*//此表格放入一个DIV中,并设置ID,分页控件中需要用天此ID*@
<div id="data">
<table>
<tr>
<th>
用户名
</th>
<th>
密码
</th>
<th></th>
</tr> @foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.UserName)
</td>
<td>
@Html.DisplayFor(modelItem => item.PassWord)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Uid }) |
@Html.ActionLink("Details", "Details", new { id=item.Uid }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Uid })
</td>
</tr>
}
</table>
@*//此处添加分页控件*@
@Html.AjaxPager(
Model,
new PagerOptions { PageIndexParameterName = "page" },
new AjaxOptions { UpdateTargetId = "data" }
)
</div>
主要修改三个地方:
1、最开始一行修改为@model PagedList<Users>,Users为您的实体名。
2、将表格<table>放入到一个div中,并为此DIV设定一个ID,后面放置分页控件时会用到此ID。
3、在表格<table>的后面,放置分页控件,我设定的分页参数为page,需要分页的区域为data.
至此,分部视图制作完成。
第四步:制作主视图的控制器
我将主视图命名为UserList
public ActionResult UserList(int? page)
{
PagedList<Users> u = db.Users.OrderBy(c=>c.Uid).ToPagedList (page ?? , );
if (Request.IsAjaxRequest())
return PartialView("UserPager", u);
return View(u);
}
分页参数是page,是前面放控件时设定好的,默认显示第1页,每页显示10条记录。
注意,在查询数据时,一定要用OrderBy排序,否则会出错。因为作者用的是linq的take和skip函数来进行分页的,用这两个函数前必须要排序。
第五部:制作视图UserList.cshtml
分部视图是不能独立显示的,必须放在其它主视图中显示。此例,我是将分部视图UserPager.cshtml放在主视图UserList.cshtml中显示。
分部视图主要用来分页,主视图主要用来调用分部显示显示数据。
@model PagedList<Users>
@{
ViewBag.Title = "UserList";
Layout = "~/Views/Shared/_Layout.cshtml";
} <h2>用户列表</h2>
@{Html.RenderPartial("UserPager",Model);}
可根据控件器,创建空视图,添加第一行和最后一行,最后一行即是调用分部视图。
至此,分页完成。
MVC3学习:利用mvc3+ajax结合MVCPager实现分页的更多相关文章
- MVC3学习:利用mvc3+ajax实现全选和批量删除
本例数据库操作使用EF code first; 先利用mvc自带的模板,先生成一个list视图,然后再手动添加复选框和删除按钮 <table> <tr> @*在标题行添加一个全 ...
- MVC3学习:利用mvc3+ajax实现级联下拉列表框
本例使用的是EF first code操作数据库. 一.准备数据库 级联下拉列表框,比较经典的就是省市数据表,在Model里同时创建三个类:province.cs.city.cs和dropContex ...
- 在ASP.NET MVC3 中利用Jsonp跨域访问
在ASP.NET MVC3 中利用Jsonp跨域访问 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复 ...
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
- ASP.NET MVC3入门教程之ajax交互
本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=100&extra=page%3D1 随着web技术的不断发展与 ...
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- jQuery学习笔记之Ajax用法详解
这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...
- 学习笔记之AJAX无刷新分页
利用AJAX实现无刷新分页技术原理: 其主要是利用AJAX的异步处理机制,实现数据的异步传递,它隐藏了客户端向服务端请求数据的状态,在客户端表现为无刷新的显示状态. 实现分页的步骤: 1.客服端点击页 ...
随机推荐
- lambda表达式(c++11)
1.概念 1)lambda表达式是一个可调用的代码单元,它由一个捕获列表.一个参数列表.一个箭头.一个返回类型.一个函数体组成: 2)可以忽略参数列表和返回类型,但必须包含捕获列表和函数体: 3)忽略 ...
- C# 结构(struct)的特点
1.C# 中的结构有以下特点: 结构可带有方法.字段.索引.属性.运算符方法和事件. 结构可定义构造函数,但不能定义析构函数.但是,您不能为结构定义默认的构造函数.默认的构造函数是自动定义的,且不能被 ...
- hadoop Hive 的建表 和导入导出及索引视图
1.hive 的导入导出 1.1 hive的常见数据导入方法 1.1.1 从本地系统中导入数据到hive表 1.创建student表 [ROW FORMAT DELIMITED]关键字,是用来设 ...
- PuTTY乱码问题解决办法
原文链接:http://www.henshiyong.com/archives/403.html 使用PuTTY 时,遇到了乱码问题,查看了别人介绍的信息,解决掉了. 方法其实很简单,现在分享出来. ...
- Linux中的sleep、usleep、nanosleep、poll和select
在进行Linux C/C++编程时,可调用的sleep函数有好多个,那么究竟应当调用哪一个了?下表列出了这几个函数间的异同点,可作为参考: 性质 精准度 线程安全 信号安全 sleep libc库函数 ...
- Kafka C++客户端库librdkafka笔记
目录 目录 1 1. 前言 2 2. 缩略语 2 3. 配置和主题 3 3.1. 配置和主题结构 3 3.1.1. Conf 3 3.1.2. ConfImpl 3 3.1.3. Topic 3 3. ...
- Unicode和多字节的相互转换
多字节转Unicode 四步: Step1 #include <iostream> #include "windows.h" using namespace std; ...
- Beta阶段第二篇Scrum冲刺博客-Day1
1.站立式会议 提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 张晨晨:交接进组 郭琪容:明确任务并学习 吴玲:明确接 ...
- 无法链接glew的解决办法-编译开源库出现: error LNK2001: 无法解析的外部符号
无法链接glew的解决办法-编译开源库出现: error LNK2001: 无法解析的外部符号 参考官方配置指南:http://glew.sourceforge.net/install.html 1. ...
- js-倒计时原理
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...