javascript - 如何挑选要在 jQuery 数据表中显示的列?

标签 javascript jquery json datatables

从服务器返回的 JSON(用于填充 dataTable )如下所示:

[
   {
      "id":1,
      "attributeType":{
         "id":1,
         "name":"test1",
         "tag":"test-type",
         "is-dog":false
      },
      "attributeValue":{
         "id":null,
         "name":"blah",
         "tag":"BLAH"
      },
      "buzz":1,
      "fizz":"53abc"
   }
]

但是,我只想显示以下字段:

  • id
  • attributeValue.name
  • 嗡嗡声

此外,我希望它们按以下顺序显示(从左到右):

  • 嗡嗡声
  • attributeValue.name
  • id

如何配置我的数据表以仅选择这三个字段,并以所需的顺序显示它们?提前致谢!

最佳答案

要实现此目标,您可以动态构建表,然后将其发送到数据表。

在下面的示例中,我假设 Json 在 jQuery Ajax 调用中返回,并且您的响应中有多个项目:

$.ajax({
    type: "POST",
    url: "Controller Url",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
...
...
success: function (response) {

// Assuming you need to parse, you may not need to depending on how the data is returned.
var parsedJson = $.parseJSON(response); 
// Empty var to hold the table content.
var buildTable = "";

$.each(parsedJson, function(i)) {
    buildTable += "<tr>";
    buildTable += "<td>" + parsedJson[i].buzz + "</td>";
    buildTable += "<td>" + parsedJson[i].attributeValue.name + "</td>";
    buildTable += "<td>" + parsedJson[i].id + "</td>";
    buildTable += "</tr>";
});

// Now fill your datatable with the table content in the order you want and with only the fields required.
$("#datatableContent").append(buildTable);

// Configure your datatable
$('#datatableContent').dataTable({ });

} //end success

});// end ajax

在您看来,您会:

<table id="datatableContent">
<thead>
    <tr>
        <th>Buzz</th>
        <th>Name</th>
        <th>ID</th>
    </tr>
</thead>
<tbody>
</tbody>

需要记住的一件事是,如果我将 $('#datatableContent').dataTable({ }); 配置部分放置在 ajax 调用成功的情况下,我就会遇到问题。我在成功的 $("#datatableContent").append(buildTable); 行之后放置了地雷,并且每次都完美运行。

关于javascript - 如何挑选要在 jQuery 数据表中显示的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12857958/

相关文章:

javascript - typescript :为什么我们不能为泛型类型分配默认值?

javascript - 将启用/禁用按钮的复选框

javascript - 使用 getter/setter 覆盖 javascript 属性,同时仍然访问底层属性

jquery - 如何阻止我的滑动 div 与标题重叠?

PHP json_encode 作为 PHP 数组 unset() 后的对象

c# - 将日期时间从 json 转换为可读格式

Android请求响应太长

javascript - jQuery - 我的代码似乎不适用于所有浏览器

jquery可嵌套如何防止/拒绝掉落

javascript - 在 jQuery textarea 结果值中显示为 [object HTMLTextAreaElement]