mvc4 html.pager,MVC分页之MvcPager使用详解
最近刚刚接触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使用详解相关推荐
- java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]
本文主要向大家介绍了JAVA语言的Spring MVC注解式开发使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处 ...
- spring MVC请求处理类注解属性详解
spring MVC请求处理类注解属性详解
- 分页存储存储管理方式详解
分页存储存储管理方式详解 离散分配方式 分页储存管理方式 页面与页表 页面 物理块 逻辑地址结构 页表 快表(TLB,Translation Look aside Buffer) 一级页表的缺陷 两级 ...
- oracle分页查询sql语句通用,oracle分页查询sql语句,oracle分页查询sql语句详解
oracle分页查询sql语句,oracle分页查询sql语句详解,Oracle分页查询sql语句 Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点 ...
- linux分页显示所有文件内容,Linux more分页显示内容命令详解
名称:more 使用权限:所有使用者 使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] 说明:类似 cat ,不过会以一 ...
- MVC输出缓存(OutputCache参数详解)
1.学习之前你应该知道这些 几乎每个项目都会用到缓存,这是必然的.以前在学校时做的网站基本上的一个标准就是1.搞定增删改查2.页面做的不要太差3.能运行(ps真的有这种情况,答辩验收的时候几个人在讲台 ...
- asp.net分页控件使用详解【附实例下载】
本篇文章主要对asp.net创建事务的方法进行实例介绍,具有很好的参考价值,需要的朋友一起来看下吧 一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将 ...
- Django之MVC框架与MTV框架详解
Django框架简介 MVC框架和MTV框架(了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图 ...
- ASP.NET Core MVC 源码学习:详解 Action 的匹配
前言 在 上一篇 文章中,我们已经学习了 ASP.NET Core MVC 的启动流程,那么 MVC 在启动了之后,当请求到达过来的时候,它是怎么样处理的呢? 又是怎么样把我们的请求准确的传达到我们的 ...
最新文章
- BZOJ 1923: [Sdoi2010]外星千足虫
- VMware网络选项分析
- PHP预定义常量DIRECTORY_SEPARATOR
- 梦幻手游登录显示服务器爆满,《梦幻西游》手游全服爆满,iOS二区开启_
《梦幻西游》手游官网-人人都玩,无处不在...
- 使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件
- 白板随手一画,嗖嗖变成代码
- 遍历删除List中的元素,会报错? 用iterator.remove() 完美解决
- hdu-1542 Atlantis(离散化+线段树+扫描线算法)
- linux系统论文题目大全_操作系统专业论文选题 操作系统毕业论文题目如何定
- wordpress iDowns-v1.8.3下载类主题无缝对接erphpdown会员中心+在线充值+VIP开通+卡密插件
- Vim插件管理插件Vim-plug
- uniapp 解决切换横竖屏后内容错乱的问题
- 网站建设开发策划书应该怎么写?
- 【股票】融资融券基本概念
- Elasticsearch最佳实践之使用场景
- 2018年常见的13种APP推广方法 最后一种运营者必看
- phpstudy提示80端口被system占用
- 翁恺老师C语言程序设计网课(THE END)
- 计算机组装活动口号,缤纷校园,精彩社团——龙江实验学校社团活动精彩纷呈...
- 触摸屏自助答题软件使用说明
热门文章
- linux 安装RedisLive
- 常用工具说明--搭建基于rietveld的CodeReview平台(未测试)
- 【讨论】新一轮互联网的泡沫即将破灭,大量低级别的码农将被淘汰
- 用ElasticSearch存储日志
- coco与voc相互转化
- 2018年智能音箱对比
- verilog仿真——$test$plusargs 和 $value$plusargs
- Edges图像边缘处理halcon算子,持续更新
- console类详细解释
- Start application automatically during controller boot-up