关键词搜索

源码搜索 ×
×

easyUI datagrid 前端假分页

发布2015-01-26浏览11167次

详情内容

datagrid有两种分页方式,真分页和假分页。

所谓真分页,就是真的每次只获取一张分页的数据。

所谓假分页,就是将所有数据全部获取下来,然后利用其分页控件进行分页。

下面具体说说假分页:

1、datagrid有些参数需要设置:

  1. $("#dg").datagrid({
  2. pageNumber:1,
  3. pagination: true,//分页控件
  4. rownumbers: true,//显示行号
  5. pageSize: 10,
  6. pageList: [10, 15, 50, 100],
  7. loader: myLoader, //前端分页加载函数
  8. ……

2、加载函数:

  1. function myLoader(param, success, error) {
  2. var that = $(this);
  3. var opts = that.datagrid("options");
  4. if (!opts.url) {
  5. return false;
  6. }
  7. var cache = that.data().datagrid.cache;
  8. if (!cache) {
  9. $.ajax({
  10. type: opts.method,
  11. url: opts.url,
  12. data: param,
  13. dataType: "json",
  14. success: function (data) {
  15. that.data().datagrid['cache'] = data;
  16. success(bulidData(data));
  17. },
  18. error: function () {
  19. error.apply(this, arguments);
  20. }
  21. });
  22. } else {
  23. success(bulidData(cache));
  24. }
  25. function bulidData(data) {
  26. debugger;
  27. var temp = $.extend({}, data);
  28. var tempRows = [];
  29. var start = (param.page - 1) * parseInt(param.rows);
  30. var end = start + parseInt(param.rows);
  31. var rows = data.rows;
  32. for (var i = start; i < end; i++) {
  33. if (rows[i]) {
  34. tempRows.push(rows[i]);
  35. } else {
  36. break;
  37. }
  38. }
  39. temp.rows = tempRows;
  40. return temp;
  41. }
  42. }
照抄可也,只要 jQuery easyui 1.2.6+

3、服务器端获取数据,格式一定要是:

{"total":106,"rows":[{},{},{}.....]},且rows.length的长度应该等于total的值。显然,rows就是具体的数据。

如此,分页可成矣,只不过,它是假的。


4、如果需要刷新数据,务必清除缓存:

  1. $("#dg).data().datagrid.cache = null;
  2. $("#dg).datagrid("reload");


相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载