asp.net 中使用 pagedlist 分页并具有查询功能的实现方法

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

1、在view代码:

<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 = 15;

        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; }
    }

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

时间: 2024-09-30 19:32:54

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

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

(原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人绝对局部刷新更准确 些)的分页.其实在PagedList.Mvc中早已经为我们提供好了Ajax分页的各种东东,但是这里我要自己写下. 实现思想: 1.客户端发送Ajax请求.2.服务器端响应请求并将响应结果回传给客户端.3.客户端接收响应结果并进行数据绑定. 实现方案: 大多数人都知道这个思想,但是

ASP.NET中实现Ajax分页

在页面中指定一个div容器来接收动态生成的分页数据: 1 <div id="div_menu"> 2 </div> 使用jQuery来请求并处理Json格式数据: 1 //定义页码与页容量 2 var pageIndex = 1; 3 var pageSize = 15; 4 var pageCount = 0; 5 var recordCount = 0; 6 AjaxGetData(pageIndex, pageSize); 7 //Ajax获取数据 8 f

ASP.NET中DataList数字分页代码

ASP.NET中DataList数字分页代码 转 荐 好长时间没发东西了, 之前一段时间一直在做别的东西, 最近java实验室要开搞系统哈哈, 重新学习.net 这个分页困扰了我这个菜鸟好久阿, 搞了好久终于找到这段代码, 还是数字分页, 试了成功了~还不会分页的朋友看到这个就偷笑吧~~ 代码转自http://hi.baidu.com/honfei css样式取自吴旗娃aspnetpager 效果: 共1页       首页 上一页  1 2 3 4 5 6 7 8 9 10 ....下一页 末

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

前几天看见博客园上有人写ASP.NET MVC的分页思想,这让我不禁想起了PagedList.PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable<T>进行分页,而且非常简单好用.从NuGet上,可以获取两个DLL:PagedList.dll和PagedList.Mvc.dll.PagedList.dll提供分页的核心操作,PagedList.Mvc.dll是一个辅助类库,在创建分页的UI时候提供简单.可扩展的创建方法.不过PagedList.dll可以用于MV

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

学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面 学习ASP.NET C

Asp.net MVC 使用PagedList 分页

在asp.net mvc 中,可以bootstrap来作为界面,自己来写分页程序.也可以使用PagedList来分页 1.首先,在NuGet程序包管理控制台 ,输入Install-Package PagedList.mvc 安装PagedList 和PageList.Mvc;查看程序中的引用,已经有了PagedList,和PagedList.Mvc两个文件的引用 2.使用,下面是一个实现了分页.排序.查找.分页功能的例子.通过多设置一个查找变量参数来保存当时的查找字符串 currentFilte

Asp.net Mvc使用PagedList分页

git:https://github.com/troygoode/PagedList 1. Nuget 安装package 2.View @{ ViewBag.Title = "Processes Listing"; } @using PagedList.Mvc; @using PagedList; <link href="/Content/PagedList.css" rel="stylesheet" type="text/cs

UEditor在asp.netMVC4中的使用,包括上传功能

网页编程中在线编辑器的使用还是很重要的,最近研究了一下百度出的UEditor编辑器,把它结合到刚学的asp.netMVC+EF中,同时实现上传资料(包括图片,视频等)功能,下面就以一个最简单的新闻管理为例介绍一下UEditor在MVC4中的使用. 一.下载最新的UEditor版本,下载地址:http://ueditor.baidu.com/website/download.html,如图 二.创建数据库,我使用sqlserver2012,数据库:TestDemo,表:News如下: USE [T

ASP.NET中的几种弹出框提示基本实现方法

我们在.NET程序的开发过程中,常常需要和用户进行信息交互,比如执行某项操作是否成功,"确定"还是"取消",以及选择"确定"或"取消"后是否需要跳转到某个页面等,下面是本人对常用对话框使用的小结,希望对大家有所帮助,同时也欢迎大家补充. (1) 点击页面上的按钮,弹出一个对话框提示是"确定"还是"取消"操作,我们采用在按钮中添加属性来完成: 举例如下: 复制代码代码如下: public