【问题标题】:jQuery DataTable - Displaying data with custom JSON structurejQuery DataTable - 使用自定义 JSON 结构显示数据
【发布时间】:2015-07-22 11:10:10
【问题描述】:

如何使用 jQuery Datatable 填充自定义 JSON 数据结构。我在下面找到了解决方案(数据表默认 - JSON 结构),它工作正常,直到我将“数据”作为主要对象/数组,但是,我想使用另一个 JSON 结构(我的 JSON 结构)。有可能还是我需要坚持使用 Datatable 默认 JSON 结构?我使用的是 DataTables 1.10.7。提前感谢您的帮助。

数据表默认 - JSON 结构

{
 "data": [
{
  "name": "Tiger Nixon",
  "position": "System Architect",
  "salary": "$320,800",
  "start_date": "2011/04/25",
  "office": "Edinburgh",
  "extn": "5421"
},
{
  "name": "Garrett Winters",
  "position": "Accountant",
  "salary": "$170,750",
  "start_date": "2011/07/25",
  "office": "Tokyo",
  "extn": "8422"
}
]
}

我的 JSON 结构

[
{
  "Date": "12/04/14",
  "MeterID": "56",
  "BlockID": "12",
  "Type": "sure",
  "Subtype": "truction",
  "Notes": ""
},
{
  "Date": "12/04/14",
  "MeterID": "3456",
  "BlockID": "123456",
  "Type": "alism",
  "Subtype": "working",
  "Notes": "Lorem"
}
]

jQuery 数据表代码 sn-p

$('#incident').DataTable({
    "ajax": "../../data/object.json",
    "columns": [
        { "data": "name" },
        { "data": "position" },
        { "data": "salary" },
        { "data": "start_date" },
        { "data": "office" },
        { "data": "extn" }
    ],
    "iDisplayLength": 10
})

【问题讨论】:

    标签: javascript jquery json datatable


    【解决方案1】:

    阅读此solution,它将解决您的疑问..

    【讨论】:

      【解决方案2】:

      这是我的做法。

      $('#divWorkQueueTable').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="workQueueTable"></table>');
          $('#workQueueTable').DataTable({
              "data": requests,
              "columns": [{
                  "title": 'ID',
                  "data": "ID",
                  "sWidth": "5%",
                  "render": function(data) {
                      return '<a href="javascript:;" onclick="modARBRequest.Load( \'' + data + '\')">' + data + '</a>';
                  }
              }, {
                  "title": "Project ID",
                  "data": "ProjectID",
                  "sWidth": "10%"
              }, {
                  "title": "Phase",
                  "data": "Phase",
                  "sWidth": "5%"
              }, {
                  "title": "Project Description",
                  "data": "Title",
                  "sWidth": "50%"
              }, {
                  "title": "Date Requested",
                  "data": "DateRequested",
                  "sWidth": "10%",
                  "render": function(data) {
                      return modCommon.DateToString(data);
                  }
              }, {
                  "title": "Stage",
                  "data": "Stage",
                  "sWidth": "15%"
              }, {
                  "title": "Status",
                  "data": "Status",
                  "sWidth": "10%"
              }]
          });
      

      所以如果我是你,我会尝试解析 ajax 请求并将解析的数据传递到数据表中。查看您的“数据”行,它们似乎与您的 json 不对应。我错过了什么吗?

      所以你需要像 "data":"Date", "data": "MeterID", "data": "BlockID" 等等...

      $('#incident').DataTable({
      "ajax": "../../data/object.json",
      "columns": [
          { "data": "Date" },
          { "data": "MeterID" },
          { "data": "BlockID" },
          { "data": "Type" },
          { "data": "Subtype" },
          { "data": "Notes" }
      ],
      "iDisplayLength": 10
      

      })

      【讨论】:

      • 数据行(JSON 文件)代表我的 JSON 结构中提到的数据结构,我也无法理解上述解决方案 :-(
      • 你需要像 "data":"Date", "data": "MeterID", "data": "BlockID" 等等...
      • 在最初的回复中查看我的额外说明。我还将为您的列标题使用 title 属性,并通过 sWidth 在实际列上设置宽度。
      • 然后请发布文件。您是否尝试过更改我在答案中提到的输出中字段的名称?
      • 我试过了,它说 - Uncaught TypeError: Cannot read property 'length' of undefined
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      相关资源
      最近更新 更多