public ActionResult AdminUserList(UserListModel model)
{
var pagedList = _userService.SearchAdminUsers(model.PageIndex, model.PageSize, model.Name, model.IsActive);
model.Items = new PagedList<UserListItem>(Mapper.Map<List<UserListItem>>(pagedList), pagedList.PageIndex, pagedList.PageSize, pagedList.TotalCount);
return View(model);
}

Controller

public class UserListItem
{ public Guid Id { get; set; } [Display(Name = "登录帐号")]
public string LoginId { get; set; } [Display(Name = "姓名")]
public string Name { get; set; } [Display(Name = "电子邮箱")]
public string Email { get; set; } [Display(Name = "手机号")]
public string Phone { get; set; } [Display(Name = "激活")]
public bool IsActive { get; set; } [Display(Name = "注册日期")]
public DateTime RegisterDate { get; set; } /// <summary>
/// 会员级别
/// </summary>
[Display(Name = "会员级别")]
public VIPLevel VIPLevel { get; set; }
}
public class UserListModel : BaseQueryModel
{
public UserListModel()
{
IsActive = true;
} #region User
public IPagedList<UserListItem> Items { get; set; } [Display(Name = "登录帐号")]
public string LoginId { get; set; } [Display(Name = "姓名")]
public string Name { get; set; } [Display(Name = "手机号")]
public string Phone { get; set; } [Display(Name = "激活")]
public bool IsActive { get; set; }
}

Model

  public abstract class BaseQueryModel
{
public BaseQueryModel()
{
PageIndex = ;
PageSize = ;
} public int PageIndex { get; set; }
public int PageSize { get; set; } public RouteValueDictionary ToParms()
{
RouteValueDictionary dic = new RouteValueDictionary();
this.GetType().GetProperties().Where(x => x.PropertyType.IsPrimitive
|| x.PropertyType.IsValueType
|| (Nullable.GetUnderlyingType(x.PropertyType) != null && (Nullable.GetUnderlyingType(x.PropertyType).IsValueType || Nullable.GetUnderlyingType(x.PropertyType).IsPrimitive))
|| x.PropertyType == typeof(string)).ToList().ForEach(x => dic.Add(x.Name, x.GetValue(this)));
return dic;
}
}

BaseQueryModel

public IPagedList<User> SearchUsers(int pageIndex, int pageSize, string name, bool isActive)
{
var query = this._userRep.Table; if (!string.IsNullOrWhiteSpace(name))
{
query = query.Where(x => x.Name == name);
}
query = query.Where(x => x.IsActive == isActive);
query = query.Where(x => x.IsDelete == false);
query = query.Where(x => x.IsActive == isActive && x.UserType == UserType.Customer);
query = query.OrderByDescending(x => x.RegisterDate).OrderBy(x => x.Name); return new PagedList<User>(query, pageIndex, pageSize);
}

Method

引用了MVCPager,DLL地址:http://www.webdiyer.com/aspnetpager/relatedlinks/

有一部分代码是框架封装好的,大家看思路就好。

MVCPager分页使用方法的更多相关文章

  1. MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)

    该示例演示如何使用MvcPager最基本的Ajax分页模式. 使用AjaxHelper的Pager扩展方法来实现Ajax分页,使用Ajax分页模式时,必须至少指定MvcAjaxOptions的Upda ...

  2. MvcPager分页控件的使用

    1.引入MvcPager.dll(MvcPager分页控件:http://www.webdiyer.com/mvcpager/) 2.后台C# Controller: //Ddemo使用Webdiye ...

  3. MvcPager分页控件以适用Bootstrap

    随笔- 9  文章- 0  评论- 33  修改MvcPager分页控件以适用Bootstrap 效果(含英文版,可下载)   软件开发分页效果必不可少,对于Asp.Net MVC 而言,MvcPag ...

  4. jQuery EasyUI datagrid实现本地分页的方法

    http://www.codeweblog.com/jquery-easyui-datagrid%e5%ae%9e%e7%8e%b0%e6%9c%ac%e5%9c%b0%e5%88%86%e9%a1% ...

  5. mysql分页优化方法

    mysql分页优化方法 今天遇到开发反应分页语句很慢,马上看一下到底是啥的分页语句 原分页语句 SELECT * FROM `tt` LIMIT , 执行这个语句需要6秒+时间 执行计划为全表扫描 在 ...

  6. Latex 算法过长 分页显示方法

    参考: Algorithm tag and page break Latex 算法过长 分页显示方法 1.引用algorithm包: 2.在\begin{document}前加上以下Latex代码: ...

  7. MySQL大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化   ---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适 ...

  8. 修改MvcPager分页控件以适用Bootstrap 效果(含英文版,可下载)

    软件开发分页效果必不可少,对于Asp.Net MVC 而言,MvcPager 是个不错的选择.请访问http://www.webdiyer.com/mvcpager/ 由于自带的分页样式不能和项目整体 ...

  9. MvcPager分页控件使用注意事项!

    初学MVC,做了个单页面应用,需要显示多个分页,并无刷新更新. 找到了MvcPager控件,非常好用,在使用ajax过程中遇到很多问题.慢慢调试和杨老师(MvcPaegr作者)请教,总于都解决了. 首 ...

随机推荐

  1. Android - 内存泄漏的情况以及解决方法

    [译]Android内存泄漏的八种可能(上) Android防止内存泄漏的八种方法(下). Static Activities 在类中定义了静态Activity变量,把当前运行的Activity实例赋 ...

  2. sql: TRIGGER

    --Common Table Expressions(CTE) WITH HighSample (SampleId,SampleTitle,SampleContent) AS ( SELECT Sam ...

  3. JavaScript练习笔记整理·4 - 6.26

    基础练习(1): 我的解答为: function getMiddle(s) { if(s.length%2 == 0) { return s.charAt(s.length/2-1)+s.charAt ...

  4. System.Net.Mail 邮件发送示例

    前言:OA自动发送邮件的程序不好使,SQL Server 存储过程邮件发送程序好使,但是不利于标准化和维护,于是觉得是适合找些“轮子”武装一下.想起之前学习过System.Net.Mail ,于是再次 ...

  5. 如何在VS2010环境下编译C++程序

    原文:http://blog.csdn.net/gupengnina/article/details/7441203 用 Visual Studio 编写 Visual C++ 程序的第一步是选择项目 ...

  6. java 从网上下载文件的几种方式

    package com.github.pandafang.tool; import java.io.BufferedOutputStream; import java.io.File; import ...

  7. jquery mobile开发中常见的问题(转载)

    1页面缩放显示问题 问题描述: 页面似乎被缩小了,屏幕太宽了. 处理方法: 在head标签内加入: <meta name="viewport" content="w ...

  8. Hadoop Archives档案

    HDFS 并不擅长存储小文件,因为每个文件最少一个 block,每个 block 的元数据都会在 NameNode 占用内存,如果存在大量的小文件,它们会吃掉NameNode 节点的大量内存. Had ...

  9. mongodb 3.4复制集详解

    1关闭数据库,打开三个mongodb数据库数据库实例 rs.printReplicationInfo() 2:原理 主库能够进行读写操作,一个复制集群只能有一个活跃的主库 一般情况下复制可以分为好几种 ...

  10. linux下安装及配置jenkins

    jenkins常用的有两种安装方式: 1.直接下载war包jenkins.war,下载地址https://jenkins.io/download 直接下载 1.1.可以把war包直接部署到servle ...