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. Floodlight controller 线程池模型

         官方文档对于ThreadPool的描写叙述是:ThreadPool is a Floodlight module wrapper for a Java's ScheduledExecutor ...

  2. Chapter 1 Securing Your Server and Network(1):选择SQL Server业务经理

    原版的:http://blog.csdn.net/dba_huangzj/article/details/37924127  ,专题文件夹:http://blog.csdn.net/dba_huang ...

  3. DDD,ORM还是Ado.Net

    三层还是DDD,ORM还是Ado.Net,何去何从? 我本想把这个问题放到博问去,前几次有去博问问过之类的问题,无奈大神们可能都不屑回答别人的低级问题.所以放到随笔里,一方面把自己对ORM.架构的一些 ...

  4. Eclipse在SVN安装步骤(两种)和使用方法

    一.至Eclipse安装SVN,最常见的两种方式:手动模式,使用安装向导.具体操作步骤如下: 单程:手动安装 1.官方网站下载,从site-1.6.9.zip文件,网址是:subclipse.tigr ...

  5. Oracle笔试题库 附参考答案

    1.  下列不属于ORACLE的逻辑结构的是(C) 区 段 数据文件 表空间 2. 下面哪个用户不是ORACLE缺省安装后就存在的用户(A) A . SYSDBA B. SYSTEM C. SCOTT ...

  6. visual studio code, asp.net5, mvc6资料汇总

    最近在试探性地跟随微软最新发布的一些产品,现列下某些挺好的文章和链接 code.visualstudio.com http://blogs.msdn.com/b/cesardelatorre/arch ...

  7. 【分享】LateX排版软件学习教程合集

    来源于:http://www.hejizhan.com/html/xueke/416/x416_13.html  LATEX2e科技排版指南.pdf 8.3 MB  An Example LaTeX ...

  8. SpecFlow

    SpecFlow http://blog.csdn.net/yujunwu2525/article/details/7839859 将业务需求与.NET代码结合起来 SpecFlow旨在弥合领域专家与 ...

  9. iOS基础 - UIDatePicker and UIPickerView and UITextField

    1.UIDatePicker继承自UIControl,因此不会通过代理来监听事件的改变,而是通过addTarget来监听事件.监听的事件是值改变事件. 2.UIPickerView继承自UIView, ...

  10. Unknown

    鉴于自己的直觉总是很准,所以这次再相信一次好了 T1:我觉得极有可能考到的是 1.对于栈,队列的模拟: 2.数论(不是像gcd那样的题目,而是加法原理乘法原理斥容,或是极具数学推导的东西,当然有可能用 ...