1 Mvc分页组件MvcSimplePager代码重构

1.1 Intro

1.2 MvcSimplePager 代码优化

1.3 MvcSimplePager 使用

1.4 End

Mvc分页组件MvcSimplePager代码重构

Intro

MvcSimplePager 是为解决分页的而做的一个通用、扩展性良好的轻量级分页扩展,可以自定义分页时调用的方法,自定义分页所用的样式,样式与代码分离,维护方便。

网上有许多分页都是查询所有数据再从中查询某一页的数据,但是个人感觉数据很少时还可以,如果数据比较多这样根本是不可行的,需要哪一页数据再查询哪一页的数据才是正确的做法,才能一定程度上提高查询的效率。

在网上看了几个分页组件,感觉分页的 html 代码和 CSharp 代码都有不同程度上的耦合,都不是特别满意, 于是自己封装了一个分页组件,基本可以实现 html 代码与 CSharp 代码的完全分离。

MvcSimplePager 代码优化

MvcSimplePager 是这样开始的 http://www.cnblogs.com/weihanli/p/5913797.html

从开始的把分页的样式和翻页事件耦合在代码中到把翻页事件分离出来再到最后把分页样式也分离开来,MvcSimplePager 才算开始了。

之后是BUG修改和思考代码的优化和重构

在开始在视图上展示数据 使用 foreach遍历数据时是需要 Model.Data 才能够遍历的,之后优化成为只需要Model就可以了,像下面这样:

foreach(var item in Model)

V1.0的时候是没有 GroupSize 的,为了使用起来更方便加入了一个 GroupSize ,帮助更好的实现更优美的分页, 刚加的时候不知道当前为什么加了一个验证 GroupSize 不能大于8的限制【捂脸...】,上个版本已经去掉

总之,希望这个分页组件能够解决大家的分页问题,也希望能够它越来越好用,使用起来越来越简单,编码越来越优美。

下面介绍一下具体使用

MvcSimplePager 使用

  1. 引用 MvcSimplePager 包

    在 nuget 包管理器中搜索 “MvcSimplePager”

  2. 自定义 分页分部视图

    创建自己项目的分页分布视图,放在 Views目录下的 Shared 目录下

    可参考 demo 项目中的 示例修改为自己想用的Pager:

  3. 后台代码中设置页面数据

    控制器代码只需要三行代码:

    • 从数据库或自己封装的服务层获取所需数据
    • 根据查询的数据生成 IPagerListModel 数据
    • 将 IPagerListModel 数据传递到 view

  4. 设置所需设置分页的页面

    • 在页面上展示数据

      MvcSimplePager 已经对Model进行了处理,在页面上展示数据,可以直接 foreach Model

    • 分页

      MvcSimplePager 定义了为 HtmlHelper定义了一个 Pager的扩展方法,用法如下:

      • 第一个参数是 Model 里封装的一个分页信息
      • 第二个参数是分页事件,默认是超链接,这里我是调用的一个进行分页的 js 方法
      • 第三个参数是 分页分部视图的名称
      • 第四个参数是 分页信息展示选项,现在有两种,总是展示和需要翻页时才展示

End

现在已经将这个项目 MvcSimplePager 打包到 Nuget http://www.nuget.org/packages/MvcSimplePager/,你可以在VS中 nuget 包管理器中搜索 MvcSimplePager 进行使用 。

自定义 MvcSimplePager 项目和示例代码:https://github.com/WeihanLi/MvcSimplePager ,你可以根据需要再进行自己的定制。

如果 MvcSimplePager 还有什么不能满足你的需要,欢迎与我联系,期待您的建议和反馈 ben121011@126.com

Mvc分页组件MvcSimplePager代码重构的更多相关文章

  1. Mvc分页组件MvcSimplePager代码重构及使用

    1 Mvc分页组件MvcSimplePager代码重构 1.1 Intro 1.2 MvcSimplePager 代码优化 1.3 MvcSimplePager 使用 1.4 End Mvc分页组件M ...

  2. ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版

    MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...

  3. Jquery分页组件

    最近工作不是很忙,所以就看看淘宝kissy分页组件源码,感觉代码也不怎么难 容易理解,所以就按照他们的思路自己重新理一遍,来加深自己对他们的理解,同时对他们的分页组件进行一些重构(因为他们分页是做好了 ...

  4. 【ASP.NET MVC 回顾】HtmlHepler应用-分页组件

    以前在ASP.NET WebForm开发中会用到许多控件,像DropDownList等.同样ASP.NET MVC中也有类似的控件-HtmlHelper. HtmlHelper和服务器控件相比,Htm ...

  5. asp.mvc中的vue分页实例,分页组件无法重置reload,解决点击查询按钮后,分页不刷新的问题

    刚刚接触Vue.js,现在需要做一个查询功能,并且进行服务端分页.主要思路是在页面中注册一个分页组件,然后进行调用.代码如下 1.引用vue.js,具体去网上下载 2.在html的body中添加如下代 ...

  6. Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)

    推荐视频:尚硅谷Spring Data JPA视频教程,一学就会,百度一下就有, 后台代码:在DAO层继承Spring Data JPA的PagingAndSortingRepository接口实现的 ...

  7. asp.net MVC通用分页组件 使用方便 通用性强

    asp.net MVC通用分页组件 使用方便 通用性强   该分页控件的显示逻辑: 1 当前页面反色突出显示,链接不可点击 2 第一页时首页链接不可点击 3 最后一页时尾页链接不可点击 4 当前页面左 ...

  8. 自己写的一个Pager分页组件,WebForm,Mvc都适用

    我一说写这个功能的时候,好多人估计有疑问.分页功能网上多的是,搜一个不就行了,你这样不是浪费时间么.你说这句话的时候,我是比较信的,首先自己写一些东西是很耗时,有这些时间又能多打几盘LOL了.但是我觉 ...

  9. 项目一:第五天 1、区域数据(pinyin4j-简码,城市编码) 2、Web层代码重构(model对象,分页代码提取) 3、区域分页查询 3、分区添加功能 4、定区管理管理-添加,分页

    Service: /** * @Description: 1.保存定区  2.让分区关联定区 * 对象三种状态 1.持久态(被session管理对象-一级缓存中有对象) 2.托管态(有OID标识,数据 ...

随机推荐

  1. 调查问卷Html5发展综述

    [Html5可以离线操作.是否能开发Html5离线网络应用程序] 按常理Html5开发出来的是Web网页应用.则需网络连接才干下载并使用,作为Html5对离线应用开发的支持最大的特殊,支持离线须要满足 ...

  2. linux大杂烩

    linux: 进入hbase后不能移动光标和删除  Options-Session Options -- Terminal --右边的Terminal中选择linux然后点击OK就好了

  3. 利用HttpClient抓取话费详单等信息

    由于项目需要,需要获取授权用户的在运营商(中国移动.中国联通.中国电信)那里的个人信息.话费详单.月汇总账单信息(需要指出的是电信用户的个人信息无法从网上营业厅获取).抓取用户信息肯定是要模仿用户登录 ...

  4. weblogic启动报错--com.octetstring.vde.backend.BackendRoot

    错误现象: 使用bea用户启动weblogic时报错,错误信息如下: <2014-7-29 下午07时47分23秒 CST> <Notice> <Log Manageme ...

  5. Error with mysqld_safe

    出处:http://bugs.mysql.com/bug.php?id=18403 Description: - I downloaded the binary file “Standard 5.0. ...

  6. JSP之项目路径问题(${pageContext.request.contextPath},<%=request.getContextPath()%>以及绝对路径获取)

    本随笔这是作为一个记录使用,以备后查.项目完成之后本地部署OK,本地Linux部署OK,都可以正常的访问,可是当我把它部署到服务器上面的时候,首页可以正常访问,可是当发出请求的时候却报错误了,说找不到 ...

  7. solr的配置文件及其含义

    solr与.net系列课程(二)solr的配置文件及其含义    solr与.net系列课程(二)solr的配置文件及其含义  本节内容还是不会涉及到.net与数据库的内容,但是不要着急,这都是学时s ...

  8. windows server 2003断开远程之后自动注销用户

    windows server 2003断开远程之后自动注销用户 2011-07-30 09:42:52     我来说两句      收藏    我要投稿 最近一台服务器老是断开远程之后过没多久就自动 ...

  9. iOS基础 - 多线程线程

    一.多线程的应用 l 充分发挥多核处理器的优势,并发(同时执行)执行任务让系统运行的更快.更流畅 二.进程与线程概念 l 一个运行的程序就是一个进程或者叫做一个任务 l 一个进程至少包含一个线程,线程 ...

  10. Redis for Windows(C#缓存)配置文件详解

    Redis for Windows(C#缓存)配置文件详解   前言 在上一篇文章中主要介绍了Redis在Windows平台下的下载安装和简单使用http://www.cnblogs.com/aehy ...