转自:https://blog.csdn.net/metal1/article/details/17536185

EasyUI Datagrid 分页显示(客户端)

By ZYZ

在使用JQuery EasyUI 的Datagrid 控件时,其中的pagination(分页控件)非常有用,该分页控件允许用户导航页面的数据,它支持页面导航和页面长度选择的选项设置。

Pagination控件上的显示文字默认是英文的,在引用了中文翻译文件(easyui-lang-zh_CN.js)可以全部显示为中文。如下:

<scripttype="text/javascript" src="../../js/easyui-lang-zh_CN.js"></script>
首先初始化datagrid
如果要达到正常的分页效果,需要在初始化函数内对datagrid的分页方法进行设置。

$(function(){

$('# table').datagrid({loadFilter:pagerFilter});

});
设置datagrid获取数据的来源:
在这里分别以get和post方法来获取数据。

 functionSearchTrainee() {
//获取搜索条件
var companyCode =$('#hiddenCompanyCode').val();
var name = $('#txtName').val();
var planName =$('#textSearchPlan').val();
if (companyCode == "")companyCode = "000";
var rowsData = "[]";
//get方法:
varhandler = "Ajax/GetTraineeHandler.ashx?Name=" + name +"&PlanName=" + planName + "&CompanyCode=" +companyCode;
$('#tableTrainee').datagrid('options').url = encodeURI(handler);
$('#tableTrainee').datagrid('reload');
//post方法:
$.post('Ajax/GetTraineeHandler.ashx', {
Name: name,
PlanName: planName,
CompanyCode: companyCode
}, function (data) {
$('#tableTrainee').datagrid('loadData', JSON.parse(data));
});
}

Post方法中的JSON.parse 函数很重要,它将post得到的字符串转换成了object类,因为过滤函数中需要使用object类的参数。
设置页面过滤函数


 function pagerFilter(data)
{
var dg = ('#table').datagrid();;
var opts = dg.datagrid('options');
var pager = dg.datagrid('getPager');
pager.pagination({
onSelectPage:function(pageNum, pageSize){
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',{
pageNumber:pageNum,
pageSize:pageSize
});
dg.datagrid('loadData',data);
}
});
if(!data.originalRows){
data.originalRows =(data.rows);
}
var start =(opts.pageNumber-1)*parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows =(data.originalRows.slice(start, end));
return data;
}

一般获取Data数据时会采用一次获取全部数据,这种方法的确很方便省事。一次获取数据数据保存在浏览器中,翻页和改变行数的动作会非常的快速。

但是如果获取的数据量非常庞大,比如一百万行数据时怎么办呢?一次全部获取的话会严重影响Datagrid的加载速度,也加重了数据库服务器的工作负担,如果遇到并发用户非常多的情况,那就更加慢了。

最新文章

  1. CozyRSS开发记录8-解析一份RSS
  2. jsoup获取图片示例
  3. c#运算表达式
  4. 2016年末闲谈iOS开发的未来
  5. FastMM 定位内存泄露的代码位置
  6. springmvc的xml版本和注解版本
  7. axure rp extension的下载
  8. For Me ...
  9. android判断应用是否有某个权限
  10. 一个很经典的this面试题
  11. js previousSibling兼容使用方法
  12. Sql Server 存储过程中查询数据无法使用 Union(All)
  13. maven安装配置及使用maven创建一个web项目
  14. lucene学习的小结
  15. mybatis源码分析(二)------------配置文件的解析
  16. 51 IP核查询
  17. 解决无法创建 JPA 工程的问题
  18. Linux命令对应的英文全称
  19. Oracle Lock(Enqueues)
  20. input标签的按钮效果

热门文章

  1. PAT 1059. C语言竞赛
  2. 【01】emmet系列之基础介绍
  3. JavaEE JDBC 补充注意点
  4. uva1366/LA3530
  5. [NOIP2007] 提高组 洛谷P1098 字符串的展开
  6. css3自定义流动条
  7. 简谈Java传值传引用
  8. Centos7最小安装下Install Clamav(2017-06-09最后更新)
  9. jQuery的DOM操作之捕获和设置
  10. Android插屏动画效果