【问题标题】:Custom data source property dataSrc and pagination issue自定义数据源属性 dataSrc 和分页问题
【发布时间】:2016-01-01 17:09:24
【问题描述】:

我正在使用 jQuery DataTables 和服务器端处理模式。但是我遇到了数据表的问题,我已经搜索了 Datatables 文档中的所有内容,但找不到我的答案。

所以问题是我从服务器收到这样的 JSON 响应:

正如您在此 JSON 响应中所见,所需的数据表 JSON 位于 data.data 中以在数据表中设置此数据源,有一个属性为 Custom Data Property,它工作正常并显示行。现在的问题是数据表没有考虑来自 JSON 的分页参数,这就是它显示的原因:

请注意,我无法从服务器端更改 JSON 响应。

更新: 这里是js调用脚本:

$(document).ready(function () {
   $("#example").dataTable({
      "ajax": {
          url: app.getApiUrlWithAccessToken('lead/get_all'),
          dataSrc: function(json){
              return json.data.data;
          }
      },
      "lengthMenu": [1,2,5,10,15],
      "columns": [
          { "data": "first_name" },
          { "data": "last_name" },
          { "data": "title" },
          { "data": "email" },
          { "data": "city" },
          { "data": "status" }
      ],
      "processing": true,
      "serverSide": true
   });
});

【问题讨论】:

  • 似乎您的请求过滤响应,显示您的请求并显示/解释您可用于列表响应的命令
  • @scaisEdge 我已经更新了问题。
  • 您使用的是哪个版本?
  • datatables 期望来自服务器的 iTotalRecordsiTotalDisplayRecords 显示消息 showing 0 to 10 of 100 recordsDocs
  • @JSantosh 我正在使用 DataTables-1.10.9,我已经更改了 iTotalRecords、iTotalDisplayRecords 但没有任何反应。

标签: jquery json datatables yii2


【解决方案1】:

原因

在服务器端处理模式下,DataTables 期望返回的数据中有 certain structure。参数drawrecordsTotalrecordsFiltered 应该是顶级属性。您的响应将这些参数作为 data 的子属性,而不是 DataTables 会在哪里寻找它们。

解决方案

将参数drawrecordsTotalrecordsFiltered 设置为DataTables 期望的JSON 响应的顶级属性。

ajax.dataSrc 选项使用以下代码:

dataSrc: function(json){
   json.draw = json.data.draw;
   json.recordsTotal = json.data.recordsTotal;
   json.recordsFiltered = json.data.recordsFiltered;

   return json.data.data;
}

演示

有关代码和演示,请参阅 this jsFiddle

【讨论】:

  • @TouqeerShafi,你是对的,我已经更正了我的答案。
  • 好像新版本是这样的 dataFilter: function(data){ var json = jQuery.parseJSON( data ); json.recordsTotal = json.total; json.recordsFiltered = json.total; json.data = json.list;返回 JSON.stringify(json); // 返回 JSON 字符串 }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 2014-12-12
  • 2016-10-26
  • 2014-01-08
  • 2020-10-21
  • 2019-04-25
  • 1970-01-01
相关资源
最近更新 更多