EasyUi 分页 和 表格数据加载

这里说明的是将说有数据先返回到前端再由前端去分页,性能可能没有先在后台分好页再返回给前端高

但如果操作不涉及大数据的话也没什么大问题,具体问题具体分析

要使用分页控件首先要声明初始化一下:

1      //设置分页控件
2      var p = $("#tt").datagrid(‘getPager‘); //tt为表格id
3      $(p).pagination({
4        // pageSize: 10,//每页显示的记录条数,默认为10
5        pageList: [5,10,15],//可以设置每页记录条数的列表
6        beforePageText: ‘第‘,//页数文本框前显示的汉字
7        afterPageText: ‘页    共 {pages} 页‘,
8        displayMsg: ‘当前显示 {from} - {to} 条记录   共 {total} 条记录‘,
9      });      

然后是前端的分页代码(网上的):

 1 function pagerFilter(data){
 2             if (typeof data.length == ‘number‘ && typeof data.splice == ‘function‘){    // is array
 3                 data = {
 4                     total: data.length,
 5                     rows: data
 6                 }
 7             }
 8             var dg = $(this);
 9             var opts = dg.datagrid(‘options‘);
10             var pager = dg.datagrid(‘getPager‘);
11             pager.pagination({
12                 //pageSize: 10,//每页显示的记录条数,默认为10                  //这里不设置的画分页页数选择函数会正确调用,否则每次点击下一页
13                 pageList: [5,10,15],//可以设置每页记录条数的列表              //pageSize都会变回设置的值
14                 beforePageText: ‘第‘,//页数文本框前显示的汉字
15                 afterPageText: ‘页    共 {pages} 页‘,
16                 displayMsg: ‘当前显示 {from} - {to} 条记录   共 {total} 条记录‘,
17                 onChangePageSize:function(){
18                  },
19                 onSelectPage:function(pageNum, pageSize){
20                     opts.pageNumber = pageNum;
21                     opts.pageSize = pageSize;
22                     pager.pagination(‘refresh‘,{
23                         pageNumber:pageNum,
24                         pageSize:pageSize
25                     });
26                     dg.datagrid(‘loadData‘,data);
27                 }
28             });
29             if (!data.originalRows){
30                 data.originalRows = (data.rows);
31             }
32             var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
33             var end = start + parseInt(opts.pageSize);
34             data.rows = (data.originalRows.slice(start, end));
35             return data;
36         }
 1 function doSearch(){
 2         userName = $("#itemid").val();
 3         roleName = $("#roleName").val();
 4         var urlRequest="/account/searchByUserName?userName="+userName+"&roleName=" + roleName;  //相对路径请求
 5         $.getJSON(urlRequest, null, function(json) {                        //get方法获取json数据,java代码之前写过一篇了
 6         /* $(function(){
 7         ccb={total:json.length,rows:[json[0]]};
 8         $("#tt").datagrid(‘loadData‘, ccb);
 9         alert(‘here‘);
10         });  */
11         ccb = {                                                 //Json数据继续封装
12               "total": json.length,
13               "rows": json
14         };
15         $(function(){
16             $(‘#tt‘).datagrid({loadFilter:pagerFilter}).datagrid(‘loadData‘, ccb);
17         });
18         /*  $("#tt").datagrid(‘loadData‘, {                                 //加载数据类似上面的
19         "total": json.length,
20          "rows": json
21          }); */
22    });
23         }

Html代码顺便粘一下:

 1 <body>
 2     <div class="demo-info" style="margin-bottom:10px">
 3         <div class="demo-tip icon-tip">&nbsp;</div>
 4         <div>输入查询关键字,点击查询搜索</div>
 5     </div>
 6
 7     <table id="tt" class="easyui-datagrid" style="width:1130px;height:540px"
 8             title="Searching" iconCls="icon-search" toolbar="#tb"
 9             rownumbers="true" pagination="true">
10         <thead>
11             <tr>
12                 <th field="userName" width="150">用户名</th>
13                 <th field="roleName" width="150">角色名</th>
14                 <th field="telphone" width=150" >电话</th>
15                 <th field="email" width="150" >邮件</th>
16                 <th field="sex" width="50">性别</th>
17                 <th field="createtime" width="160" align="center">账户创建时间</th>
18             </tr>
19         </thead>
20     </table>
21     <div id="tb" style="padding:3px">
22         <span>用户名:</span>
23         <input id="itemid" style="line-height:26px;border:1px solid #ccc" onkeydown=‘if(event.keyCode==13){doSearch();}‘>
24         <span>角色名:</span>
25         <select id="roleName"  style="line-height:26px;border:1px solid #ccc" onchange="doSelect();">
26             <option value="all" >所有角色</option>
27             <option value="超级管理员">超级管理员</option>
28             <option value="管理员">管理员</option>
29         </select>
30         <a href="#" class="easyui-linkbutton" plain="true" onclick="doSearch()">查询</a>
31     </div>
32 </body>
时间: 2024-10-24 10:44:55

EasyUi 分页 和 表格数据加载的相关文章

谈谈easyui datagrid 的数据加载(转)

这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数据:另一种是加载js对象,也就是使用loadDate方法. 这里就自己的使用经验,对两种方式做简单总结和归纳,并且对使用过程中容易产生的误区做较为详细的描述,希望能对大家有所帮助. url方式加载数据 调用方式 目前可能大多数人都是选择这种方式,因为跟流行的框架结合的也比较好,使用url的话,可以将

【颗粒归仓】(一)jQuery easyui datagrid 的数据加载

其实easyuidatagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数据:另一种是加载js对象,也就是使用loadDate方法,这种方法用于加载本地js数据(非url调用).在项目中我用到的以及研究别人代码中用到的普遍是第一种,下面就分别对他们进行总结. 一.ajax加载目标url返回的json数据 首先明确,通过ajax加载目标url返回的值不一定是json格式,在http://blog.csdn.net/luckystar689/article/details/5

谈谈easyui datagrid 的数据加载

文章目录 1url方式加载数据 1.1调用方式 1.2相关方法 1.3二次加载问题 2加载本地数据方式 2.1调用方式 2.2如何分页 2.3加载中效果 2.4如何不统计总数 这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数据:另一种是加载js对象,也就是使用loadDate方法. 这里就自己的使用经验,对两种方式做简单总结和归纳,并且对使用过程

Plist数据表格的加载详细事例

1.本次主要加载单一字典的plist数据(app.plist),形式如下 2.加载plist数据,先将数据字典转换成对应的模型,本例子所用的是各个应用的图标,对应的就应该创建一个应用图标的模型huapp(名称自拟).在头文件中定义所有变量,以及将字典转换成模型数据的两个方法,如下图: 类方法调用对象方法,在对象方法中转换模型 注意:在对象方法中属性的转化还可已使用KVC,一句代码就解决 [self setValuesForKeysWithDictionary:dict]; 但是使用KVC,就会将

easyui中的datagrid的数据加载的问题

我们在第一次使用easyui的datagrid的url加载所需的数据时,如果第二次加载数据我们使用的不是ulr而是数据返回结果进行加载的时候$("#div").datagird('loadData',data)就如同这样,我们是不能将最新的数据加载上的,表单加载的数据仍然是原来的数据,因为url还是原来的url,datagrid会按照原来的数据进行加载,这时候我们如果想要加载数据的时候可以使用$("#div").datagrid({url,"",

实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)

实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624.aspx  译 Q:77811970 实现虚拟模式的原因之一 DataGridView控制只检索数据,因为它是必要的. 这就是所谓的 即时数据加载 . 如果你正在与一个非常大的表在一个远程数据库,例如,您可能希望避免启动延迟,只检索所需的数据显示和检索额外的数据只有当用户新行滚动到视图. 如果客户

JQuery插件:遮罩+数据加载中。。。(特点:遮你想遮,罩你想罩)

在很多项目中都会涉及到数据加载.数据加载有时可能会是2-3秒,为了给一个友好的提示,一般都会给一个[数据加载中...]的提示.今天就做了一个这样的提示框. 先去jQuery官网看看怎么写jQuery插件,然后就开始写了.写下来这么一个插件,稍作优化,就在项目中使用了.下面贴的是我写这个插件时的测试图: 这张图模拟数据加载前提示框的展示,这个表格是一个写在页面上的.蓝色的底纹就是遮罩层. (function($){ $.fn.extend({ /** * 打开遮罩,并显示一段文字. * @para

Android数据加载及Json解析——框架版

方法调用 new ApiUser(this).initData(new ApiRequest() { @Override public void onResult(BeanRequest bean) { //如果接口调用不成功,给予提示 if (!bean.isSuccess()) { UtilToast.show(Activitymain.this, bean.getErrInfo(), UtilToast.STYLE_ERROR); } //Json数据解析:BeanInitData 数据实

[Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]

我要做回自己--Aaronyang的博客(www.ayjs.net) 博客摘要: Virtualizing虚拟化DEMO 和 大数据加载的思路及相关知识 WPF数据提供者的使用ObjectDataProvider 和 XmlDataProvider WPF验证 第一:使用自带的属性SET抛出异常,前台捕捉到异常,描红 第二:我们可以自定义验证规则,替代刚开始的异常捕捉验证 第三:我们可以使用INotifyDataErrorInfo方式,增加异常,并实现了验证通知和还原非法值 第四:我们使用了Er