通常情况下页面数据的分页显示分成真假两种。真分页是依靠后台查询时控制调出数据的数量来实现分页,也就是说页面在后台对数据进行处理,仅传输当前需要页的数据到前台来显示。而假分页则是后台一次性将所有的数据一起传送到前台,再由前端程序来控制数据的显示与遮蔽。

既然要分页,那么首先就必须要获得所有的数据,并且知道数据的数量。这步可以是由后台程序返回告知,当然也可以有javascript自己去读取。

datagrid分页 有一个附加的分页控件,只需后台获取分页控件自动提交的两个参数rows每页显示的记录数和page;//当前第几页,然后读取相应页数的记录,和总记录数total一块返回即可,页面如上图所示。

核心代码

要想实现分页其pagination属性必须为true:

//设置分页控件,设置其各个属性值与是否要允许列排序等

  1. <span style="font-family:SimSun;font-size:18px;"><table id="tt" " title="设置打分规则" class="easyui-datagrid" style="width: auto;
  2. height: 400px;" idfield="itemid" pagination="true" iconcls="                                                                icon-save" remoteSort="false"
  3. data-options="rownumbers:true,
  4. url:'JSONData.ashx/ProcessRequest',pageSize:5,pageList:[5,10,15,20],
  5. method:'get',toolbar:'#tb' ," fitcolumns="true" striped="true"></span>

一般处理程序中获取前台传过来的pageRows,page,

  1. <span style="font-family:SimSun;font-size:18px;"> //================================================================
  2. //获取分页和排序信息:页大小,页码,排序方式,排序字段
  3. int pageRows, page;
  4. pageRows = 10;
  5. page = 1;
  6. string order, sort, oderby; order = sort = oderby = "";
  7. if (null != context.Request.QueryString["rows"])
  8. {//获取前台传过来的每页显示数据的条数
  9. pageRows = int.Parse(context.Request.QueryString["rows"].ToString().Trim());
  10. }
  11. if (null != context.Request.QueryString["page"])
  12. {
  13. //获取当前的页码
  14. page = int.Parse(context.Request.QueryString["page"].ToString().Trim());
  15. }
  16. if (null != context.Request.QueryString["sort"])
  17. {//排序方式
  18. order = context.Request.QueryString["sort"].ToString().Trim();
  19. }
  20. if (null != context.Request.QueryString["order"])
  21. {
  22. //根据的字段
  23. sort = context.Request.QueryString["order"].ToString().Trim();
  24. }
  25. </span>

调出分页查询数据B层的方法

  1. <span style="font-family:SimSun;font-size:18px;">//调用分页的GetList方法
  2. DataSet ds = scorebll.GetListByPage(strWhere.ToString(), oderby, (page - 1) * pageRows + 1, page * pageRows);
  3. int count = scorebll.GetRecordCount(strWhere.ToString());//获取条数
  4. string strJson = ToJson.Dataset2Json(ds, count);//DataSet数据转化为Json数据
  5. context.Response.Write(strJson);//返回给前台页面
  6. context.Response.End();</span>

D层中的方法:

根据查询条件,是否排序(以哪一列排序),调用数据库中查询符合条件的数据

  1. <span style="font-family:SimSun;font-size:18px;">/// <summary>
  2. /// 分页获取数据列表
  3. /// </summary>
  4. public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
  5. {
  6. StringBuilder strSql=new StringBuilder();
  7. strSql.Append("SELECT * FROM ( ");
  8. strSql.Append(" SELECT ROW_NUMBER() OVER (");
  9. if (!string.IsNullOrEmpty(orderby.Trim()))
  10. {
  11. strSql.Append("order by T." + orderby );
  12. }
  13. else
  14. {
  15. strSql.Append("order by T.ScoreStyleID desc");
  16. }
  17. strSql.Append(")AS Row, T.*  from t_scoreRule T ");
  18. if (!string.IsNullOrEmpty(strWhere.Trim()))
  19. {
  20. strSql.Append(" WHERE " + strWhere);
  21. }
  22. strSql.Append(" ) TT");
  23. strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
  24. return DbHelperSQL.Query(strSql.ToString());
  25. }</span>

在实现的过程中,我们要记得前台加上这句话

  1. <span style="font-family:SimSun;font-size:18px;"> </span>
  1. <span style="font-family:SimSun;font-size:18px;">//增加查询参数,重新加载表格
  2. function reloadgrid() {
  3. //查询参数直接添加在queryParams中
  4. var queryParams = $('#tt').datagrid('options').queryParams;
  5. getQueryParams(queryParams);
  6. $('#tt').datagrid('options').queryParams = queryParams;//传递值
  7. $("#tt").datagrid('reload');//重新加载table
  8. }</span>

表格重新加载,因为这样才能拿到后面传来的数据,如果不加这个效果没出来(付出了时间的代价)。

总结:

对于这样的框架还有很多值得我们学习的地方,上面的这些按纽都可以灵活的去添加,例如:添加导入、导出数据等,都容易实现,好的框架的学习,让我们学会了如何站在举人的肩膀上更快成长,具体的行动需要我们融入自己的学习当中,在实践中不断的体会到了,学与会用真的是两回事啊,大家共同努力多动手多实践。

jquery easyui datagrid 分页实现的更多相关文章

  1. jquery easyui datagrid 分页详解

    由于项目原因,用了jquery easyui 感觉界面不错,皮肤样式少点,可是官网最近打不开了,资料比较少,给的demo没有想要的效果,今天在用datagrid 做分页显示的时候,折腾了半天,网上的资 ...

  2. jquery easyui datagrid 分页 详解

    前些天用jquery easyui的table easyui-datagrid做分页显示的时候,折腾了很久,后来终于解决了.其实不难,最主要我不是很熟悉前端的东西. table easyui-data ...

  3. jquery easyui datagrid 分页 详解(java)

    1.首先引入easyui包,可以在官方网站下载,http://www.jeasyui.com/download/index.php <link rel="stylesheet" ...

  4. jquery easyui datagrid 分页实现---善良公社项目

    接着上篇文章,接下来给大家分享分页的实现,分页其实多多少少见过很有几种,框架中带的图片都特别的好看,会给用户以好的使用效果,具体实现,需要自己来补充代码: 图示1: 通常情况下页面数据的分页显示分成真 ...

  5. JQuery easyui Datagrid 分页事件

    easyui是Jquery中的一个轻量级UI插件,提供了一些诸如window.datagrid.button等控件.现在主要说说Datagrid中分页控件的使用. easyui中可以单独添加分页pag ...

  6. jQuery EasyUI datagrid实现本地分页的方法

    http://www.codeweblog.com/jquery-easyui-datagrid%e5%ae%9e%e7%8e%b0%e6%9c%ac%e5%9c%b0%e5%88%86%e9%a1% ...

  7. jquery easyui datagrid使用参考

    jquery easyui datagrid使用参考   创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: 页面上 ...

  8. 扩展jquery easyui datagrid编辑单元格

    扩展jquery easyui datagrid编辑单元格 1.随便聊聊 这段时间由于工作上的业务需求,对jquery easyui比较感兴趣,根据比较浅薄的js知识,对jquery easyui中的 ...

  9. EasyUI Datagrid 分页显示(客户端)

    转自:https://blog.csdn.net/metal1/article/details/17536185 EasyUI Datagrid 分页显示(客户端) By ZYZ 在使用JQuery ...

随机推荐

  1. Kafka日志清除策略

    一.更改日志输出级别 config/log4j.properties中日志的级别设置的是TRACE,在长时间运行过程中产生的日志大小吓人,所以如果没有特殊需求,强烈建议将其更改成INFO级别.具体修改 ...

  2. Oracle子查询相关内容(包含TOP-N查询和分页查询)

    本节介绍Oracle子查询的相关内容: 实例用到的数据为oracle中scott用户下的emp员工表,dept部门表,数据如下: 一.子查询 1.概念:嵌入在一个查询中的另一个查询语句,也就是说一个查 ...

  3. hdu 1999 不可摸数 筛选素数 两次打表

    不可摸数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. Python seed() 函数

    描述 seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数.. 语法 以下是 seed() 方法的语法: import random random.seed ( [x] ...

  5. oracle启动、关闭

    windows上启动关闭 http://www.cnblogs.com/victor_chou/archive/2009/07/09/1519594.html

  6. Python 多进程 一分钟下载二百张图片 是什么样子的体验

    需要爬取国内某个网站,但是这个网站封ip,没办法,只能用代理了,然后构建自己的代理池,代理池维护了20条进程, 所用的网络是20M带宽,实际的网速能达到2.5M,考虑到其他原因,网速未必能达到那么多. ...

  7. Java:多线程,线程同步,synchronized关键字的用法(同步代码块、非静态同步方法、静态同步方法)

    关于线程的同步,可以使用synchronized关键字,或者是使用JDK 5中提供的java.util.concurrent.lock包中的Lock对象.本文探讨synchronized关键字. sy ...

  8. 面向对象中private理解

    我们大家都知道思想訪问修饰符.public,protected,private,那么我们知道了继承中private私有属性能够继承吗?我么接下来做个小实验 class A {     private ...

  9. Xcode真机调试报错:The application could not be verified.

    今天真机调试的时候遇到这个错误: The application could not be verified. 这还是第一次遇到,应该是手机上的app的证书跟如今的证书不一致导致. 解决方法有两个 x ...

  10. 基于Harbor和CephFS搭建高可用Private Registry

    我们有给客户搭建私有容器仓库的需求.开源的私有容器registry可供选择的不多,除了docker官方的distribution之外,比较知名的是VMware China出品的Harbor,我们选择了 ...