EasyUI datagrid插件 loader属性

loader 定义如何从远程服务器加载数据,如果返回false则取消动作。
loader属性指向一个函数表达式:function(param, succcess(data), error) {...}

 

loader: function(param, success, error) {
    // 定义如何从远程服务器加载数据。返回false则取消动作。一般与$.ajax(settings)等方法结合使用。
loader: function(param, success, error) {
  // console.info("loader(param, success(data), error)方法的三个参数:");
  // for (let e of arguments) {
  //   console.log(Object.prototype.toString.call(e), e);
  // }

  // 如果datagrid插件对象的options中的URL未定义,则返回false。
  let opts = $(this).datagrid("options");
  if (! opts.url) {
    return false;   // 没有URL,阻止动作。
  }

  // loader内部一般执行AJAX操作,如果AJAX操作成功(执行AJAX中的success方法),则执行loader的succes方法。
  // 如果AJAX操作error,则执行loader的error方法。
  $.ajax({
    type: opts.method,
    url: opts.url,
    data: param,	// 注意opts.queryParams和param的区别
    dataType: "json",
    success: function(data, textStatus, jqXHR) {
      console.info("AJAX请求成功");
      // for (let e of arguments) {
      //   console.log(Object.prototype.toString.call(e), e);
      // }

      success(data);  // loader(param, success, error)中的参数:success方法。
      // 调用loader(param, success, error)方法传入的success(data)方法。
      // 向这个方法传入的data参数,会继续传给loaderFilter(data)。因此必须包含total和rows属性
    },
    error: function(jqXHR, textStatus, errorThrown) {
      console.info("AJAX请求 error");
      for (let e of arguments) {
        console.log(Object.prototype.toString.call(e), e);
      }

      // 通过jqXHR拿到请求错误后的响应数据
      var errorTitle = errorThrown;    // 或jqXHR.textStatus
      var errorMsg = jqXHR.responseText;
      // 弹出消息提示框
      $.messager.confirm({
        title: errorTitle,
        msg: errorMsg,
        width: "auto",
      });

      // AJAX操作失败,必须调用loader的error方法。否则页面会一直刷新(无法向下执行)。
      error();
    }
  });
}

  }

Tips
opts.quueryParams和loader方法的第一个参数param的区别。
$(selector).datagrid("options").queryParams 是插件对象的成员属性,表示额外的查询参数(除page, rows之外的查询参数对)。
loader(param, success(data), error)中的param就是所有的查询参数对(包括page和rows)。
请求参数rows和响应对象的属性rows
EasyUI的分页插件pagination的请求参数至少包含两个:
page 要查询第几页
rows 查询多少行(pageSize,页面大小)
响应数据obj的规范形式:{total: 整数, rows: 数组},其中
total是pagination插件的total的值,表示总记录数。
rows是一个数组,每个数组元素是一个对象,每个对象存储一行的数据。
datagrid和pagination插件共有的属性。
pageList: [5, 10, 20],页面尺寸的的可选项。
pageNumber: 1,默认页码,即请求参数的page。
pageSize: 10,默认的页面大小即请求参数的rows,默认为10(这个值必须在pageList数组中有)。
rowStyler(rowIndex, rowData)和styler(value, rowData, rowIndex)
datagrid的成员属性rowStyler用于定义行的样式。
column的styler属性用于定义单元格的样式。
editors属性和editor属性。
editors是datagrid插件对象的成员属性,用于定义编辑行时的编辑器们。
editor是columns中单个column对象的属性,用于定义单元格的编辑器。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值