热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ASP.NETMVC4HtmlHelper扩展类,实现分页功能@Html.ShowPageNavigate

本文主要做了一个HtmHelper类的分页扩展函数,方便在视图中调用,有需要的朋友可以参考一下,希望对大家有所帮助。1、扩展HtmlHel

本文主要做了一个HtmHelper类的分页扩展函数,方便在视图中调用,有需要的朋友可以参考一下,希望对大家有所帮助。

 

1、扩展HtmlHelper类方法ShowPageNavigate

output.Append(" ");}if (currentPage < totalPages){//处理下一页的链接output.AppendFormat("下一页 ", redirectTo, currentPage &#43; 1, pageSize);}output.Append(" ");if (currentPage !&#61; totalPages){output.AppendFormat("末页 ", redirectTo, totalPages, pageSize);}output.Append(" ");}output.AppendFormat("", currentPage, totalPages);//这个统计加不加都行return new HtmlString(output.ToString());
}

2、添加公共类PagerInfo,PageQuery

public class PagerInfo
{
public int RecordCount { get; set; }public int CurrentPageIndex { get; set; }public int PageSize { get; set; }
}
public class PagerQuery
{
public PagerQuery(TPager pager, TEntityList entityList){this.Pager &#61; pager;this.EntityList &#61; entityList;}public TPager Pager { get; set; }public TEntityList EntityList { get; set; }
}

3、然后在Controller里面添加Action

public ActionResult Index(int? pageSize, int? pageIndex)
{
int pageIndex1 &#61; pageIndex ?? 1;int pageSize1 &#61; pageSize ?? 5;int count &#61; 0;//从数据库在取得数据&#xff0c;并返回总记录数var temp &#61; newsSer.LoadPageEntities(c &#61;> true, c &#61;> c.id, false, pageSize1, pageIndex1, out count);PagerInfo pager &#61; new PagerInfo();pager.CurrentPageIndex &#61; pageIndex1;pager.PageSize &#61; pageSize1;pager.RecordCount &#61; count;PagerQuery> query &#61; new PagerQuery>(pager, temp);return View(query);
}

4、View里的部分代码

&#64;foreach (var item in Model.EntityList){class&#61;"checkBox">"ids[]" type&#61;"checkbox" value&#61;"" />&#64;item.author&#64;item.title&#64;item.ctime&#64;Html.ActionLink("编辑", "Edit", new { id &#61; item.id }) |&#64;Html.ActionLink("删除", "Delete", new { id &#61; item.id })}&#64;*分页*&#64;class&#61;"">"5" align&#61;"center" class&#61;"paginator">&#64;Html.ShowPageNavigate(Model.Pager.CurrentPageIndex, Model.Pager.PageSize, Model.Pager.RecordCount)

5、添加一些样式

.paginator
{font: 12px Arial, Helvetica, sans
-serif;padding: 10px 20px 10px 0;margin: 0px auto;
}.paginator a
{border: solid 1px #ccc;color: #0063dc;cursor: pointer;text
-decoration: none;
}.paginator a:visited
{padding: 1px 6px;border: solid 1px #ddd;background: #fff;text
-decoration: none;
}.paginator .cpb
{border: 1px solid #F50;font
-weight: 700;color: #F50;background-color: #ffeee5;
}.paginator a:hover
{border: solid 1px #F50;color: #f60;text
-decoration: none;
}.paginator a, .paginator a:visited, .paginator .cpb, .paginator a:hover
{
float: left;height: 16px;line-height: 16px;min-width: 10px;_width: 10px;margin-right: 5px;text-align: center;white-space: nowrap;font-size: 12px;font-family: Arial,SimSun;padding: 0 3px;
}.paginator label
{display:block;
float:left;
}

6.总结

这个案例简单实现了在MVC中快速分页&#xff0c;其实很多开源的项目中都有相关的HtmlHepler的扩展函数&#xff0c;其中也不乏带有分页的扩展&#xff0c;例如著名的开源商城项目nopCommerce&#xff0c;其中有就一个HtmlExtensions.cs扩展类&#xff0c;里面就有关于分页的扩展&#xff0c;人家写的可是相当专业哦&#xff0c;有兴趣的可以研究一下。



推荐阅读
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • [echarts] 同指标对比柱状图相关的知识介绍及应用示例
    本文由编程笔记小编为大家整理,主要介绍了echarts同指标对比柱状图相关的知识,包括对比课程通过率最高的8个课程和最低的8个课程以及全校的平均通过率。文章提供了一个应用示例,展示了如何使用echarts制作同指标对比柱状图,并对代码进行了详细解释和说明。该示例可以帮助读者更好地理解和应用echarts。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 简述在某个项目中需要分析PHP代码,分离出对应的函数调用(以及源代码对应的位置)。虽然这使用正则也可以实现,但无论从效率还是代码复杂度方面考虑ÿ ... [详细]
author-avatar
彩色蜗牛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有