热门标签 | 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;有兴趣的可以研究一下。



推荐阅读
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • 本文详细介绍了Python中的生成器表达式、列表推导式、字典推导式及集合推导式等,探讨了它们之间的差异,并提供了丰富的代码示例。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 本文详细介绍了如何处理Oracle数据库中的ORA-00227错误,即控制文件中检测到损坏块的问题,并提供了具体的解决方案。 ... [详细]
  • ED Tree HDU4812 点分治+逆元
    这道题非常巧妙!!!我们进行点分治的时候,算出当前子节点的所有子树中的节点,到当前节点节点的儿子节点的距离,如下图意思就是当前节点的红色节点,我们要求出红色节点的儿子节点绿色节点, ... [详细]
  • 本文探讨了如何在Sitecore 9环境中通过Postman使用API密钥发送请求,包括解决常见错误的方法。 ... [详细]
  • iOS 小组件开发指南
    本文详细介绍了iOS小部件(Widget)的开发流程,从环境搭建、证书配置到业务逻辑实现,提供了一系列实用的技术指导与代码示例。 ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • Exploring issues and solutions when defining multiple Faust agents programmatically. ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文介绍了Linux内核中TCP的三种接收队列:Prequeue、sk_receive_queue和Backlog。这些队列在数据包处理过程中扮演着重要角色,帮助提高系统性能和效率。 ... [详细]
  • 本文深入分析了在使用JavaScript中的Date.UTC()方法初始化Date对象时,getDay()方法返回值与预期不符的原因,并提供了相应的解决方案。 ... [详细]
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社区 版权所有