用pagedlist在项目中做分页已N次了,今天再次用实例来实现一个带查询功能的分页例子。

1、在view代码:

@using PagedList.Mvc
@model BGZS.Models.UserPagedList

<div class="search">
<form method="post" action="/user/index">
<input placeholder="真实姓名" name="realname" /><button class="btnSearch">查询</button>
</form>
</div> <table class="table table-striped">
<tr>
<th>
登录名
</th> <th>
真实姓名
</th>
<th>学校</th>
<th>年级</th>
<th>班级</th>
<th>操作</th>
</tr> @foreach (var item in Model.list)
{
<tr data-id="@item.id">
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
@item.realname
</td>
<td>
@item.school
</td>
<td>
@item.stugrade
</td>
<td>@item.stuclass</td>
<td>
<a href="javascript:;" class="btnResetPwd">重置密码</a> |
<a href="javascript:;" class="btnDel">删除</a>
</td>
</tr>
}
</table>
@if (Model != null)
{
<div class="pagedList" style="margin:0 auto;text-align:center">
@Html.PagedListPager(Model.list, page => Url.Action("index", new { page,realname= Model.curUser.realname }), PagedListRenderOptions.Classic)
</div>
}

上面注意在查询部分的from表单, name属性中指明后台接收的变量。最下方的是分页代码,注意突出显示部分是在分页时传值的变量名realname= Model.curUser.realname, Model.curUser是后台指定的用户User类的当前用户,这个可以在第二步中具体查看,realname与表单中的一致,保证后台能接收到。

2、MVC控制器

        private OnlineTestEntities db = new OnlineTestEntities();
private const int pagesize = ; public ActionResult Index(User userinfo, int page = 1)
{
var list = db.Users.ToList(); if (!string.IsNullOrEmpty(userinfo.realname))
{
list = list.Where(x => x.realname.Contains(userinfo.realname)).ToList();
}
UserPagedList mylist = new UserPagedList()
{
list = list.OrderByDescending(x => x.id).ToPagedList<User>(page, pagesize),
curUser = userinfo
};
return View(mylist);
}

注意红色代码, User中有一属性正是第一步中的realname属性,这是查询条件。UserPagedList  类是把分页集合包装的一个类,是自己写的,如下 :

3、 UserPagedList类:

public class UserPagedList
{
public User curUser { get; set; }
public PagedList.IPagedList<User> list { get; set; }
}

好了,实现完毕。这种实现现在是我经常用的方法。

asp.net 中使用 pagedlist 分页并具有查询功能的实现方法的更多相关文章

  1. ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender

    (原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人 ...

  2. 左键双击关闭pagecontrol中的一个分页即一个tabsheet,功能像遨游浏览器一样

    左键双击关闭pagecontrol中的一个分页即一个tabsheet,功能像遨游浏览器一样 procedure TfrmServerSetup.PageControl1MouseDown(Sender ...

  3. 创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段

    创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段 添加查询功能 本文将实现通过Name查询用户信息. 首先更新GetAll方法以启用查询: public async ...

  4. ASP.NET MVC利用PagedList分页(一)

    前几天看见博客园上有人写ASP.NET MVC的分页思想,这让我不禁想起了PagedList.PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable<T>进行 ...

  5. asp.mvc中的vue分页实例,分页组件无法重置reload,解决点击查询按钮后,分页不刷新的问题

    刚刚接触Vue.js,现在需要做一个查询功能,并且进行服务端分页.主要思路是在页面中注册一个分页组件,然后进行调用.代码如下 1.引用vue.js,具体去网上下载 2.在html的body中添加如下代 ...

  6. ASP.NET中无刷新分页

    上次介绍了我们代码写的刷新分页,这次就来说说无刷新分页. 这次我们是在上次的基础上改动了一些,我们都知道想要无刷新,就需要Ajax,在我们的ASP.NET中AJax是和一般处理程序配合着用的. 无刷新 ...

  7. 学习ASP.NET Core Razor 编程系列九——增加查询功能

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  8. ASP.NET中实现Ajax分页

    在页面中指定一个div容器来接收动态生成的分页数据: <div id="div_menu"> </div> 使用jQuery来请求并处理Json格式数据: ...

  9. Asp.net Mvc使用PagedList分页

    git:https://github.com/troygoode/PagedList 1. Nuget 安装package watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...

随机推荐

  1. 20155210 潘滢昊 2016-2017-2 《Java程序设计》第3周学习总结

    20155210 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 class xxx{ }:定义类 运用: class Clothes{ String col ...

  2. 20155227 《Java程序设计》实验五 Java网络编程及安全实验报告

    20155227 <Java程序设计>实验五 Java网络编程及安全实验报告 实验内容 任务一: 编写MyBC.java实现中缀表达式转后缀表达式的功能. 编写MyDC.java实现从上面 ...

  3. 20155318 2016-2017-2 《Java程序设计》第四周学习总结

    20155318 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 一.继承 1.父类:为了改进代码,可以将多个代码中相同的部分提升为父类,其他类只需用exte ...

  4. thinkphp查询:

    $Role=D('role'); //查询数据表 $role_data = $Role->order('role_id')->group('role_name')->select() ...

  5. OpenStack入门篇(六)之OpenStack环境准备

    一.Openstack的概述 Openstack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. Openstack是一 ...

  6. spark读取mongodb数据写入hive表中

    一 环境: spark-: hive-; scala-; hadoop--cdh-; jdk-1.8; mongodb-2.4.10; 二.数据情况: MongoDB数据格式{    "_i ...

  7. 日志采集框架 Flume

    日志采集框架 Flume 1 概述  Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统. Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到H ...

  8. 查询系统日期和时间(mysql)

    select current_date  --不带时间select sysdate()   或 SELECT NOW();  --带时间

  9. Maven学习(十一)-----使用Maven创建Web应用程序项目

    使用Maven创建Web应用程序项目 用到的技术/工具: Maven 3.3.3 Eclipse 4.3 JDK 8 Spring 4.1.1.RELEASED Tomcat 7 Logback 1. ...

  10. Siki_Unity_2-3_UGUI_Unity4.6 UI Beta版本入门学习(未学)

    Unity 2-3 UGUI Unity4.6 UI Beta版本入门学习(未学)