【问题标题】:dynamic json for datatables数据表的动态 json
【发布时间】:2016-01-23 02:47:14
【问题描述】:

我一直在使用数据表,我可以使用 getJson 和强类型类等加载数据表,而且效果很好。直到我碰到一个障碍。

有时我想用“我不知道”的数据填充数据表,但我始终知道这将是一行数据 - 它只是一个包含动态内容的 json 字符串。

现在使用数据表,您可以通过为其分配一个 json 字符串来简单地用 aaData 和 aaCol 填充该表,但我的 json 字符串包含一个列和数据 IE:

First_name:bob 等等。

数据表上的列将填充 sTitle:Column1 等并分配给 aaCol。

有谁知道将 json 字符串解析为 aaCol 和 aaData 以用于数据表的插件?

【问题讨论】:

  • 您能否举一个您使用的“强类型类”的示例,以及一个不起作用的 json 示例?
  • 这是一个有效的 json 字符串:"[{"DTAP_EXEMPT":0.015,"DTAP_FULLY_IMMUNIZED":0.985}]" 有两列。我可以使用这些列创建一个带有 getter 和 setter 的类 - 问题是每个请求我们不知道我们要返回哪些列,因此我想动态填充。
  • 好的,我知道这些列不是静态的。但是在将数据设置为 DataTables 之前,您是否知道存在哪些列?在您的示例中,您必须知道“DTAP_EXEMPT”的值用于第一列(或第二列),而“DTAP_FULLY_IMMUNIZED”用于另一列。我有同样的问题并有解决方案(如果我的想法正确的话)。您可以指定 dataTables 从对象的字段中提取值
  • 这就是我正在努力解决的问题 - 您如何填充 aaCols 而无需在 HTML 中指定它们?你的解决方案是什么?谢谢。

标签: json datatables


【解决方案1】:

我相信您可以使用这种方法解决您的问题:

$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "scripts/objects.php",
        "columns": [
            { "data": "first_name" },
            { "data": "last_name" },
            { "data": "position" },
            { "data": "office" },
            { "data": "start_date" },
            { "data": "salary" }
        ]
    } );
} );

在上面的例子中,dataTables 使用了服务器端处理,ajax 返回一个像这样的对象:

{
  "draw": 1,
  "recordsTotal": 57,
  "recordsFiltered": 57,
  "data": [
    {
      "first_name": "Airi",
      "last_name": "Satou",
      "position": "Accountant",
      "office": "Tokyo",
      "start_date": "28th Nov 08",
      "salary": "$162,700"
    }, ...

您还可以使用每列规范中的“名称”属性来设置列名称。

您可以在以下link 中查看完整示例。如果您需要更多帮助,我可以在今天晚些时候自己编写代码 =)

您可以查看JsFiddle 了解如何设置列名

【讨论】:

  • 我得到的那部分 - 但我的问题是 - 如果您不知道列名怎么办?在您的示例中,您已经知道并定义了它们。但是如果返回的列是动态的,我想先从 json 字符串中解析列名,然后将它们填充到列或 aaCols 中:
  • 我使用了不同的方法 $.each(data[0], function (key, value) { columnArr.push({ "sTitle": key }); });
猜你喜欢
  • 2022-12-11
  • 2016-04-25
  • 2020-11-19
  • 2020-02-13
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多