easyUI datagrid 前端假分页

xiaoxiao2021-02-28  130

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

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

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

下面具体说说假分页:

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

[javascript]  view plain  copy $("#dg").datagrid({       pageNumber:1,       pagination: true,//分页控件        rownumbers: true,//显示行号       pageSize: 10,       pageList: [10, 15, 50, 100],       loader: myLoader, //前端分页加载函数       ……   2、加载函数:

[javascript]  view plain  copy function myLoader(param, success, error) {       var that = $(this);       var opts = that.datagrid("options");       if (!opts.url) {           return false;       }          var cache = that.data().datagrid.cache;       if (!cache) {           $.ajax({               type: opts.method,               url: opts.url,               data: param,               dataType: "json",               success: function (data) {                   that.data().datagrid['cache'] = data;                   success(bulidData(data));               },               error: function () {                   error.apply(this, arguments);               }           });       } else {           success(bulidData(cache));       }          function bulidData(data) {           debugger;           var temp = $.extend({}, data);           var tempRows = [];           var start = (param.page - 1) * parseInt(param.rows);           var end = start + parseInt(param.rows);           var rows = data.rows;           for (var i = start; i < end; i++) {               if (rows[i]) {                   tempRows.push(rows[i]);               } else {                   break;               }           }              temp.rows = tempRows;           return temp;       }   }   照抄可也,只要 jQuery easyui 1.2.6+

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

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

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

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

[javascript]  view plain  copy $("#dg).data().datagrid.cache = null;   $("#dg).datagrid("reload");  
转载请注明原文地址: https://www.6miu.com/read-61829.html

最新回复(0)