jquery easyui datagrid 分页实现
通常情况下页面数据的分页显示分成真假两种。真分页是依靠后台查询时控制调出数据的数量来实现分页,也就是说页面在后台对数据进行处理,仅传输当前需要页的数据到前台来显示。而假分页则是后台一次性将所有的数据一起传送到前台,再由前端程序来控制数据的显示与遮蔽。
既然要分页,那么首先就必须要获得所有的数据,并且知道数据的数量。这步可以是由后台程序返回告知,当然也可以有javascript自己去读取。
datagrid分页 有一个附加的分页控件,只需后台获取分页控件自动提交的两个参数rows每页显示的记录数和page;//当前第几页,然后读取相应页数的记录,和总记录数total一块返回即可,页面如上图所示。
核心代码
要想实现分页其pagination属性必须为true:
//设置分页控件,设置其各个属性值与是否要允许列排序等
- <span style="font-family:SimSun;font-size:18px;"><table id="tt" " title="设置打分规则" class="easyui-datagrid" style="width: auto;
- height: 400px;" idfield="itemid" pagination="true" iconcls=" icon-save" remoteSort="false"
- data-options="rownumbers:true,
- url:'JSONData.ashx/ProcessRequest',pageSize:5,pageList:[5,10,15,20],
- method:'get',toolbar:'#tb' ," fitcolumns="true" striped="true"></span>
一般处理程序中获取前台传过来的pageRows,page,
- <span style="font-family:SimSun;font-size:18px;"> //================================================================
- //获取分页和排序信息:页大小,页码,排序方式,排序字段
- int pageRows, page;
- pageRows = 10;
- page = 1;
- string order, sort, oderby; order = sort = oderby = "";
- if (null != context.Request.QueryString["rows"])
- {//获取前台传过来的每页显示数据的条数
- pageRows = int.Parse(context.Request.QueryString["rows"].ToString().Trim());
- }
- if (null != context.Request.QueryString["page"])
- {
- //获取当前的页码
- page = int.Parse(context.Request.QueryString["page"].ToString().Trim());
- }
- if (null != context.Request.QueryString["sort"])
- {//排序方式
- order = context.Request.QueryString["sort"].ToString().Trim();
- }
- if (null != context.Request.QueryString["order"])
- {
- //根据的字段
- sort = context.Request.QueryString["order"].ToString().Trim();
- }
- </span>
调出分页查询数据B层的方法
- <span style="font-family:SimSun;font-size:18px;">//调用分页的GetList方法
- DataSet ds = scorebll.GetListByPage(strWhere.ToString(), oderby, (page - 1) * pageRows + 1, page * pageRows);
- int count = scorebll.GetRecordCount(strWhere.ToString());//获取条数
- string strJson = ToJson.Dataset2Json(ds, count);//DataSet数据转化为Json数据
- context.Response.Write(strJson);//返回给前台页面
- context.Response.End();</span>
D层中的方法:
根据查询条件,是否排序(以哪一列排序),调用数据库中查询符合条件的数据
- <span style="font-family:SimSun;font-size:18px;">/// <summary>
- /// 分页获取数据列表
- /// </summary>
- public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
- {
- StringBuilder strSql=new StringBuilder();
- strSql.Append("SELECT * FROM ( ");
- strSql.Append(" SELECT ROW_NUMBER() OVER (");
- if (!string.IsNullOrEmpty(orderby.Trim()))
- {
- strSql.Append("order by T." + orderby );
- }
- else
- {
- strSql.Append("order by T.ScoreStyleID desc");
- }
- strSql.Append(")AS Row, T.* from t_scoreRule T ");
- if (!string.IsNullOrEmpty(strWhere.Trim()))
- {
- strSql.Append(" WHERE " + strWhere);
- }
- strSql.Append(" ) TT");
- strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
- return DbHelperSQL.Query(strSql.ToString());
- }</span>
在实现的过程中,我们要记得前台加上这句话
- <span style="font-family:SimSun;font-size:18px;"> </span>
- <span style="font-family:SimSun;font-size:18px;">//增加查询参数,重新加载表格
- function reloadgrid() {
- //查询参数直接添加在queryParams中
- var queryParams = $('#tt').datagrid('options').queryParams;
- getQueryParams(queryParams);
- $('#tt').datagrid('options').queryParams = queryParams;//传递值
- $("#tt").datagrid('reload');//重新加载table
- }</span>
表格重新加载,因为这样才能拿到后面传来的数据,如果不加这个效果没出来(付出了时间的代价)。
总结:
对于这样的框架还有很多值得我们学习的地方,上面的这些按纽都可以灵活的去添加,例如:添加导入、导出数据等,都容易实现,好的框架的学习,让我们学会了如何站在举人的肩膀上更快成长,具体的行动需要我们融入自己的学习当中,在实践中不断的体会到了,学与会用真的是两回事啊,大家共同努力多动手多实践。
jquery easyui datagrid 分页实现的更多相关文章
- jquery easyui datagrid 分页详解
由于项目原因,用了jquery easyui 感觉界面不错,皮肤样式少点,可是官网最近打不开了,资料比较少,给的demo没有想要的效果,今天在用datagrid 做分页显示的时候,折腾了半天,网上的资 ...
- jquery easyui datagrid 分页 详解
前些天用jquery easyui的table easyui-datagrid做分页显示的时候,折腾了很久,后来终于解决了.其实不难,最主要我不是很熟悉前端的东西. table easyui-data ...
- jquery easyui datagrid 分页 详解(java)
1.首先引入easyui包,可以在官方网站下载,http://www.jeasyui.com/download/index.php <link rel="stylesheet" ...
- jquery easyui datagrid 分页实现---善良公社项目
接着上篇文章,接下来给大家分享分页的实现,分页其实多多少少见过很有几种,框架中带的图片都特别的好看,会给用户以好的使用效果,具体实现,需要自己来补充代码: 图示1: 通常情况下页面数据的分页显示分成真 ...
- JQuery easyui Datagrid 分页事件
easyui是Jquery中的一个轻量级UI插件,提供了一些诸如window.datagrid.button等控件.现在主要说说Datagrid中分页控件的使用. easyui中可以单独添加分页pag ...
- 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% ...
- jquery easyui datagrid使用参考
jquery easyui datagrid使用参考 创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: 页面上 ...
- 扩展jquery easyui datagrid编辑单元格
扩展jquery easyui datagrid编辑单元格 1.随便聊聊 这段时间由于工作上的业务需求,对jquery easyui比较感兴趣,根据比较浅薄的js知识,对jquery easyui中的 ...
- EasyUI Datagrid 分页显示(客户端)
转自:https://blog.csdn.net/metal1/article/details/17536185 EasyUI Datagrid 分页显示(客户端) By ZYZ 在使用JQuery ...
随机推荐
- RHEL6 - 图形化设置IP
RHEL6下我们除了麻烦地修改网卡的主配置文件外,还可以通过setup,system-config-network等工具指令打开网卡的图形化界面 #setup #system-config-net ...
- 红黑树 - C++代码实现
红黑树的介绍 红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树.红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键 ...
- ActiveReports 报表控件官方中文新手教程 (1)-安装、激活以及产品资源
本系列文章主要是面向初次接触 ActiveReports 产品的用户,能够帮助您在三天之内轻松的掌握ActiveReports控件的基本用法,包含安装.激活.创建报表.绑定数据源以及公布等内容. ...
- mysql创建数据库和删除数据库
1.创建数据库 启动MySQL 服务之后,输入以下命令连接到MySQL 服务器: [mysql@db3 ~]$ mysql -uroot -p Enter password: Welcome to t ...
- Linux操作系统CentOS7.2发行版本的安装与配置(安装是选择服务器类型)
原文地址:http://1130739.blog.51cto.com/1120739/1738791 由于CentOS 7出来不久,对于这个版本的系统安装与配置的教程较少,今天就索性介绍一下CentO ...
- CSDN日报20170312——《成功人士的七个习惯》
[程序人生]成功人士的七个习惯 作者:liumiaocn 所谓温故而知新.重读往往会带来新的收获,即使没有新的收获,可以带来新的思考也是非常不错.在个人成长的历程中.习惯所扮演的角色不言而喻,Step ...
- Linux上添加新硬盘的实例介绍
在Linux上添加新硬盘的实例讲解,有需要的朋友可以看看. 系统:Redhat AS3 UP3硬盘:scsi注意:# 表示是root用户执行的命令 [root@cncmail data1]# fdis ...
- JS操作Cookies的小例子
这篇文章介绍了JS操作Cookies的小例子,有需要的朋友可以参考一下. 您可能感兴趣的文章:js 保存与获取cookie的代码javascript cookie操作实例详解javascript co ...
- 批处理学习笔记1 - Hellow World
记录自己学习批处理的一点总结吧. 批处理的好处: 可以配合vs,在build完文件之后执行自己的批处理命令. 可以批量修改文件名,或者进行复杂的查询等,对文件可编程操作. 从Hellow world开 ...
- 安卓getSystemService
getSystemService是Activity中的方法,依据传入的name来取得相应的服务对象,这些服务名称參数都是Context类中的常量 Name ...