简体   繁体   English

从Javascript源创建数据表

[英]Creating datatables from Javascript source

I am trying to build a datatable (1.10.7) based on an input of a javascript var filled with JSON data. 我正在尝试基于用JSON数据填充的javascript var的输入来构建数据表(1.10.7)。 While I've successfully used datatables with ajax sources, I've never attempted to just provide my own variable, but I need to in this case. 虽然我已经成功地将数据表与ajax源一起使用,但我从未尝试仅提供自己的变量,但是在这种情况下,我需要这样做。

Here's my variable: 这是我的变量:

json = [
 {"dateReceived":"2015-01-01","designCustomer":"MULTITEST 1","designCustomerLocation":"SUNNYVALE, CA"},
 {"dateReceived":"2016-04-05","designCustomer":"MULTITEST 2","designCustomerLocation":"SUNNYVALE, CA"},
 {"dateReceived":"1982-04-18","designCustomer":"MULTITEST 3","designCustomerLocation":"SUNNYVALE, CA"}
 ]

According to DataTables' page on Javascript-Sourced Data , 根据DataTables关于Javascript来源的数据的页面

This is achieved using the dataDT option in the initialisation object, passing in an array of data to be used (like all other DataTables handled data, this can be arrays or objects using the columns.dataDT option).

I'm confused by the differences in their test string, and in mine: 我对他们的测试字符串和我的差异感到困惑:

var dataSet = [
    ['Trident','Internet Explorer 4.0','Win 95+','4','X'],
    ['Trident','Internet Explorer 5.0','Win 95+','5','C'],
    ['Trident','Internet Explorer 5.5','Win 95+','5.5','A'],
    ['Trident','Internet Explorer 6','Win 98+','6','A'],
    ['Trident','Internet Explorer 7','Win XP SP2+','7','A']

Namely, their test variable doesn't contain field names , while mine does. 也就是说,他们的测试变量不包含field names ,而我的则包含。

Here is the code that I've written to try and parse my variable, json : 这是我为尝试解析变量json而编写的代码:

var table = $('#ltc-table').DataTable( {    
    "data" : json,        
    "columns" : [
      { "title" : "designCustomer" },
      { "title" : "designCutomerLocation" },
      { "title" : "dateReceived" },
  ],
  "lengthMenu": [ 25, 50, 101 ],
  "oLanguage": {
  "sSearch": "Filter Results: "
  }
});

It seems, based on the page I linked above, that I'm doing this correctly, but I'm getting errors instead: 根据我上面链接的页面,看来我正在正确执行此操作,但是却出现错误:

Uncaught Error: DataTables warning: table id=ltc-table - Requested unknown parameter '0' for row 0.

Any tips? 有小费吗?

If you want to use objects as data source instead of arrays, you need to bind the columns using the columns.data options: 如果要将对象用作数据源而不是数组,则需要使用columns.data选项绑定列:

json = [
 {"dateReceived":"2015-01-01","designCustomer":"MULTITEST 1","designCustomerLocation":"SUNNYVALE, CA"},
 {"dateReceived":"2016-04-05","designCustomer":"MULTITEST 2","designCustomerLocation":"SUNNYVALE, CA"},
 {"dateReceived":"1982-04-18","designCustomer":"MULTITEST 3","designCustomerLocation":"SUNNYVALE, CA"}
];

var table = $('#ltc-table').DataTable( {    
    "data" : json,        
    "columns" : [
      { "data" : "designCustomer" },
      { "data" : "designCustomerLocation" },
      { "data" : "dateReceived" }
  ],
  "lengthMenu": [ 25, 50, 101 ],
  "oLanguage": {
  "sSearch": "Filter Results: "
  }
});

See demo 观看演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM