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

一.MvcPager异步 ViewModel:

public class Article

{

[Display(Name = "信息编号")]

public int ID { get; set; }

[Display(Name = "信息标题")]

public string Title { get; set; }

[Display(Name = "信息内容")]

public string Content { get; set; }

}

public class AjaxPager

{

public PagedList Articles { get; set; }

}

Control:

///

/// 异步分页测试

///

/// pageIndex

/// 关键字

///

public ActionResult AjaxPaging(int? id = 1, string key = null)

{

int totalCount = 0;

int pageIndex = id ?? 1;

int pageSize = 2;

List infoList = new SoleFuDAL.MyTest().GetArticleList(key, pageSize, (pageIndex - 1) * 2, out totalCount);

PagedList InfoPager = infoList.AsQueryable().OrderByDescending(o => o.ID).ToPagedList(pageIndex, pageSize);

InfoPager.TotalItemCount = totalCount;

InfoPager.CurrentPageIndex = (int)(id ?? 1);

Models.MyTest.AjaxPager model = new Models.MyTest.AjaxPager();

model.Articles = InfoPager;

if (Request.IsAjaxRequest())

{

return PartialView("_ArticleList", model);

}

return View(model);

}

View:

@model soulefu_manage.Models.MyTest.AjaxPager

@using Webdiyer.WebControls.Mvc;

MVCPager-AjaxPaging

@using (Html.BeginForm("AjaxPaging", "MyTest", new RouteValueDictionary { { "id", "" } }, FormMethod.Get))

{

@Html.Label("关键字:")

}

@*分页Table*@

@{ Html.RenderPartial("_ArticleTable"); }

@Ajax.Pager(Model.Articles, new PagerOptions

{

PageIndexParameterName = "id",

FirstPageText = "首页",

PrevPageText = "上一页",

NextPageText = "下一页",

LastPageText = "末页",

NumericPagerItemCount = 5,

ContainerTagName = "ul",

CssClass = "pagination",

CurrentPagerItemTemplate = "

{0}",

DisabledPagerItemTemplate = "

{0}",

PagerItemTemplate = "

{0}"

}).AjaxOptions(a => a.SetUpdateTargetId("articles"))

@model soulefu_manage.Models.MyTest.AjaxPager

序号

标题

内容

@foreach (var item in Model.Articles)

{

@Html.DisplayFor(model => item.ID)

@Html.DisplayFor(modelItem => item.Title)

@Html.DisplayFor(modelItem => item.Content)

}

二.MvcPager同步

ViewModel(此处可不增加,直接和异步的共用同一个):

public class MVCPager

{

//信息列表

public PagedList Articles { get; set; }

}

Control:

///

/// 同步分页测试

///

/// pageIndex

/// 关键字

///

public ActionResult MVCPager(int? id = 1, string key = null)

{

int totalCount = 0;

int pageIndex = id ?? 1;

int pageSize = 2;

List infoList = new SoleFuDAL.MyTest().GetArticleList(key, pageSize, (pageIndex - 1) * 2, out totalCount);

PagedList InfoPager = infoList.AsQueryable().OrderByDescending(o => o.ID).ToPagedList(pageIndex, pageSize);

InfoPager.TotalItemCount = totalCount;

InfoPager.CurrentPageIndex = (int)(id ?? 1);

//数据组装到viewModel

Models.MyTest.MVCPager model = new Models.MyTest.MVCPager();

model.Articles = InfoPager;

return View(model);

}

View:

@model soulefu_manage.Models.MyTest.MVCPager

@using Webdiyer.WebControls.Mvc;

MVCPager

@using (Html.BeginForm("MVCPager", "MyTest", new RouteValueDictionary { { "id", "" } }, FormMethod.Get))

{

@Html.Label("关键字:")

}

编号 标题 内容

@foreach (var info in Model.Articles)

{

@Html.DisplayFor(model => info.ID)@Html.DisplayFor(model => info.Title)@Html.DisplayFor(model => info.Content)

}

@Html.Pager(Model.Articles, new PagerOptions

{

PageIndexParameterName = "id",

FirstPageText = "首页",

PrevPageText = "上一页",

NextPageText = "下一页",

LastPageText = "末页",

ContainerTagName = "ul",

CssClass = "pagination",

CurrentPagerItemTemplate = "

{0}",

DisabledPagerItemTemplate = "

{0}",

PagerItemTemplate = "

{0}",

Id = "bootstrappager"

})

获取测试数据方法(共用):

public class MyTest

{

///

/// 获取测试数据

///

///

///

///

///

///

public List GetArticleList(string key, int PageSize, int CurrentCount, out int TotalCount)

{

string tabName = string.Format("Article");

string strWhere = " 1=1";

if (!string.IsNullOrEmpty(key))

{

//SQL关键字过滤 包含关键字则不拼接SQL

if (!SqlInjection.GetString(key))

{

strWhere += string.Format(" AND (Title LIKE '%{0}%' OR Content LIKE '%{0}%')", key);

}

}

string Order = string.Format("ID ASC");

DataSet ds = SqlHelper.GetList(SqlHelper.connStr, Order, PageSize, CurrentCount, tabName, strWhere, out TotalCount);

List list = new List();

if (ds != null && ds.Tables.Count > 0)

{

foreach (DataRow dr in ds.Tables[0].Rows)

{

Article model = new Article();

model.ID = Convert.ToInt32(dr["ID"]);

model.Title = dr["Title"].ToString();

model.Content = dr["Content"].ToString();

list.Add(model);

}

}

return list;

}

}

效果图:(需要引用CSS)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

mvc4 html.pager,MVC分页之MvcPager使用详解相关推荐

  1. java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]

    本文主要向大家介绍了JAVA语言的Spring MVC注解式开发使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处 ...

  2. spring MVC请求处理类注解属性详解

    spring MVC请求处理类注解属性详解

  3. 分页存储存储管理方式详解

    分页存储存储管理方式详解 离散分配方式 分页储存管理方式 页面与页表 页面 物理块 逻辑地址结构 页表 快表(TLB,Translation Look aside Buffer) 一级页表的缺陷 两级 ...

  4. oracle分页查询sql语句通用,oracle分页查询sql语句,oracle分页查询sql语句详解

    oracle分页查询sql语句,oracle分页查询sql语句详解,Oracle分页查询sql语句 Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点 ...

  5. linux分页显示所有文件内容,Linux more分页显示内容命令详解

    名称:more 使用权限:所有使用者 使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] 说明:类似 cat ,不过会以一 ...

  6. MVC输出缓存(OutputCache参数详解)

    1.学习之前你应该知道这些 几乎每个项目都会用到缓存,这是必然的.以前在学校时做的网站基本上的一个标准就是1.搞定增删改查2.页面做的不要太差3.能运行(ps真的有这种情况,答辩验收的时候几个人在讲台 ...

  7. asp.net分页控件使用详解【附实例下载】

    本篇文章主要对asp.net创建事务的方法进行实例介绍,具有很好的参考价值,需要的朋友一起来看下吧 一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将 ...

  8. Django之MVC框架与MTV框架详解

    Django框架简介 MVC框架和MTV框架(了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图 ...

  9. ASP.NET Core MVC 源码学习:详解 Action 的匹配

    前言 在 上一篇 文章中,我们已经学习了 ASP.NET Core MVC 的启动流程,那么 MVC 在启动了之后,当请求到达过来的时候,它是怎么样处理的呢? 又是怎么样把我们的请求准确的传达到我们的 ...

最新文章

  1. BZOJ 1923: [Sdoi2010]外星千足虫
  2. VMware网络选项分析
  3. PHP预定义常量DIRECTORY_SEPARATOR
  4. 梦幻手游登录显示服务器爆满,《梦幻西游》手游全服爆满,iOS二区开启_ 《梦幻西游》手游官网-人人都玩,无处不在...
  5. 使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件
  6. 白板随手一画,嗖嗖变成代码
  7. 遍历删除List中的元素,会报错? 用iterator.remove() 完美解决
  8. hdu-1542 Atlantis(离散化+线段树+扫描线算法)
  9. linux系统论文题目大全_操作系统专业论文选题 操作系统毕业论文题目如何定
  10. wordpress iDowns-v1.8.3下载类主题无缝对接erphpdown会员中心+在线充值+VIP开通+卡密插件
  11. Vim插件管理插件Vim-plug
  12. uniapp 解决切换横竖屏后内容错乱的问题
  13. 网站建设开发策划书应该怎么写?
  14. 【股票】融资融券基本概念
  15. Elasticsearch最佳实践之使用场景
  16. 2018年常见的13种APP推广方法 最后一种运营者必看
  17. phpstudy提示80端口被system占用
  18. 翁恺老师C语言程序设计网课(THE END)
  19. 计算机组装活动口号,缤纷校园,精彩社团——龙江实验学校社团活动精彩纷呈...
  20. 触摸屏自助答题软件使用说明

热门文章

  1. linux 安装RedisLive
  2. 常用工具说明--搭建基于rietveld的CodeReview平台(未测试)
  3. 【讨论】新一轮互联网的泡沫即将破灭,大量低级别的码农将被淘汰
  4. 用ElasticSearch存储日志
  5. coco与voc相互转化
  6. 2018年智能音箱对比
  7. verilog仿真——$test$plusargs 和 $value$plusargs
  8. Edges图像边缘处理halcon算子,持续更新
  9. console类详细解释
  10. Start application automatically during controller boot-up