该属性在easyui官方文档中并没有详细阐述,通过简单的资料查询和摸索,实现了easyUI数据网格的后端分页功能。

在官网文档中这样阐述loader属性:

定义如何从远程服务器加载数据。返回false则取消该动作。该函数有下列参数:
param:要传递到远程服务器的参数对象。
success(data):当检索数据成功时调用的回调函数。
error():当检索数据失败时调用的回调函数。

一般来说,这个loader配合着JQuery的ajax使用,即$.ajax({})。

下面记录一个使用loader属性实现分页表格 数据网格(DataGrid)的大致步骤:

一、前端页面

首先定义一个DataGrid表格,里面的columns随便在哪儿定义(官方给了两种方式,js或者html),我这里用了js方式;

其次,loader属性需要赋值一个方法名,在下面的代码中都可以看出来;

然后,我通过打印param值,发现里面会传递两个参数(page和size),分别表示当前要显示的页,每页的数据条数,把它获取到,根据自己的具体情况封装传递到后台查询数据。

最后,在ajax请求中,success回调方法里面,将需要显示到表格中的数据通过success(data)方法传递一下就可以了;

需要强调的是返回的数据格式,至少包含total和rows属性。可以看我后面贴的格式参考。

<div>
<table id="dg" class="easyui-datagrid" style="width:100%;height:525px" data-options="fitColumns:true,singleSelect:true">
</table> <script type="text/javascript">
var myloader = function(param, success, error) {
var obj = {}; //声明一个对象
obj.id = 10001; //后端要求每次请求传入一个ID
obj.page = param.page;
obj.size = param.rows;
$.ajax({
type: "post",
url: "http://localhost:8080/home/customerService/getAllCustomerWithPage",
async: true, //如果是在ajax方法外加载表格数据,必须【同步】方式提交
contentType: 'application/json',
dataType: 'JSON',
data: JSON.stringify(obj),
success: function(obj) {
console.log(obj.data)
success(obj.data);
}
});
} $('#dg').datagrid({ //表格的初始化
data: '', //初始化为空,请求成功后数据加载(这里使用ajax加载数据)
loader: myloader,
striped: true, //行条纹化,即奇偶行使用不同背景色
pagination: true, //分页工具栏
pageSize: 15, //当设置了 pagination 属性时,初始化页面尺寸。
pageList: [15, 30, 45, 60], //当设置了 pagination 属性时,初始化页面尺寸的选择列表
columns: [
[{
field: 'cusNo',
title: '客户编号',
width: 100,
align: 'center'
},
{
field: 'cusName',
title: '客户名称',
width: 100,
align: 'center'
},
{
field: 'cusRegion',
title: '所属地区',
width: 100,
align: 'center'
},
{
field: 'cusAddr',
title: '客户地址',
width: 100,
align: 'center'
},
{
field: 'cusUrl',
title: '客户网址',
width: 100,
align: 'center'
},
{
field: 'cusLevel',
title: '客户级别',
width: 100,
align: 'center'
},
{
field: 'score',
title: '信用级别',
width: 100,
align: 'center'
}
]
]
});
</script>
</div>

二、数据格式

我这里贴上我的发送数据和接收到的数据格式,供大家参考。

发送格式:

我传递了三个参数,但是如果你要分页,至少得传递page和size两个参数吧,这两个参数哪儿来的,上面有说。

接收格式:

这是我定义的返回的格式,在success方法中只传递了data里面的东西(即上面js代码中的obj.data)。

{
"id":10001,
"status":200,
"desc":"查询成功",
"data":{
"total":39,
"rows":
[
{"cusId":1,
"cusNo":"90001",
"cusName":"123",
"cusRegion":"123",
"cusAddr":"重庆市",
"cusUrl":"http://www.***.edu.com",
"cusLevel":"战略合作伙伴",
"score":5}
]
}
}

sucess(data)中的data具体就是指rows和total两个属性:

参考:easyui-datagrid 的loader属性用法

利用EasyUI 数据网格(DataGrid)的loader属性实现后端分页的更多相关文章

  1. 雷林鹏分享:jQuery EasyUI 数据网格 - 创建属性网格

    jQuery EasyUI 数据网格 - 创建属性网格 属性网格(property grid)带有一个内置的 expand(展开)/collapse(合并) 按钮,可以简单地为行分组.您可以简单地创建 ...

  2. 雷林鹏分享:jQuery EasyUI 数据网格 - 设置冻结列

    jQuery EasyUI 数据网格 - 设置冻结列 本实例演示如何冻结一些列,当用户在网格上移动水平滚动条时,冻结列不能滚动到视图的外部. 为了冻结列,您需要定义 frozenColumns 属性. ...

  3. 雷林鹏分享:jQuery EasyUI 数据网格 - 动态改变列

    jQuery EasyUI 数据网格 - 动态改变列 数据网格(DataGrid)列可以使用 'columns' 属性简单地定义.如果您想动态地改变列,那根本没有问题.为了改变列,您可以重新调用dat ...

  4. 雷林鹏分享:jQuery EasyUI 数据网格 - 格式化列

    jQuery EasyUI 数据网格 - 格式化列 以下实例格式化在 easyui DataGrid 里的列数据,并使用自定义列的 formatter,如果价格小于 20 就将文本变为红色. 为了格式 ...

  5. 雷林鹏分享:jQuery EasyUI 数据网格 - 设置排序

    jQuery EasyUI 数据网格 - 设置排序 本实例演示如何通过点击列表头来排序数据网格(DataGrid). 数据网格(DataGrid)的所有列可以通过点击列表头来排序.您可以定义哪列可以排 ...

  6. 雷林鹏分享:jQuery EasyUI 数据网格 - 创建列组合

    jQuery EasyUI 数据网格 - 创建列组合 easyui 的数据网格(DataGrid)可以创建列组合,如下所示: 在本实例中,我们使用平面数据来填充数据网格(DataGrid)的数据,并把 ...

  7. 雷林鹏分享:jQuery EasyUI 数据网格 - 自定义分页

    jQuery EasyUI 数据网格 - 自定义分页 数据网格(datagrid)内置一个很好特性的分页功能,自定义也相当简单.在本教程中,我们将创建一个数据网格(datagrid),并在分页工具栏上 ...

  8. 雷林鹏分享:jQuery EasyUI 数据网格 - 添加复选框

    jQuery EasyUI 数据网格 - 添加复选框 本实例演示如何放置一个复选框列到数据网格(DataGrid).通过复选框,用户将可以选择 选中/取消选中 网格行数据. 为了添加一个复选框列,我们 ...

  9. 雷林鹏分享:jQuery EasyUI 数据网格 - 启用行内编辑

    jQuery EasyUI 数据网格 - 启用行内编辑 可编辑的功能是最近添加到数据网格(datagrid)的.它可以使用户添加一个新行到数据网格(datagrid).用户也可以更新一个或多个行. 本 ...

随机推荐

  1. Qt编写气体安全管理系统13-短信告警

    一.前言 短信告警这个模块在很多项目中都用上了,比如之前做过的安防系统,温湿度报警系统等,主要的流程就是收到数据判断属于某种报警后,组织短信字符串内容,发送到指定的多个手机号码上面,使用的是短信猫硬件 ...

  2. ArrayList数组操作

    String字符类型的操作方法 public static void main(String[] args) { // ArrayList ArrayList<String> list = ...

  3. elasticsearch关键词查询不分词

    $query = [ 'bool' => [ 'must' => [ 'match_phrase' => ['content' => $word] //$word词不被分词 ] ...

  4. Swoole练习 安装

    仅支持 Linux,FreeBSD,MacOS,3类操作系统 Linux 内核版本 2.3.32 以上 PHP-5.3.10 以上版本,包括PHP7 gcc4.4 以上版本或者clang cmake2 ...

  5. 记录一下vue slot

    使用步骤: 1.在组件(panda)当中建立一个slot,定义好name.(<slot name='myname'></slot>)    2.引用组件的时候如果需要补充内容, ...

  6. Linux_高级用法

    LInux如何压缩和解压文件 文件压缩与解压主要讲zip和tar 安静模式和文件夹 zip -r -q -o test.zip 需要打包文件 查看打包文件 du -h test.zip 上节学过的fi ...

  7. 关于Hive中的join和left join的理解

    一.join与left join的全称 JOIN是INNER JOIN的简写,LEFT JOIN是LEFT OUTER JOIN的简写. 二.join与left join的应用场景 JOIN一般用于A ...

  8. Semi-supervised learning for Text Classification by Layer Partitioning

    本文是arxiv上一篇较短的文章,之所以看是因为其标题中半监督和文本分类吸引了我.不过看完之后觉得所做的工作比较少,但想法其实也挺不错. 大多数的半监督方法都选择将小扰动施加到输入向量或其表示中,这种 ...

  9. php高级研发或架构师必了解---面试题系列

    近接连面试了几家公司,有些重要问题记录一下,督促自己学习提高,同时希望给朋友们一些帮助. 内容很多,一点点完善,一步步学习.. 有些是面试被问,有些是招聘要求,有些是自己整理加的. 一.mysql相关 ...

  10. STM32F103芯片SPI控制NRF24L012.4G无线模块交互通信实验

    1.NRF24L01模块的资料百度搜索一下就有很多.这里我就不做介绍本文主要侧重于应用层面实验介绍与分享. 2.先看下原理图. 根据原理图:写出NRF24L01  C语言驱动文件如下: #includ ...