javascript - Jquery数据表不显示列标题

标签 javascript jquery ajax datatable

这与问题 here 相关。然而,我的情况有点不同。我想实现另一个问题中相同的数据表示例 here 。正如您所看到的,您必须传递列名称才能初始化表标题,如下所示

 "columns": [
        { "data": "name" },
        { "data": "position" },
        { "data": "office" },
        { "data": "extn" },
        { "data": "start_date" },
        { "data": "salary" }
    ]

问题是我事先不知道 header 名称,因为它们会改变。当我从 ajax 获取数据时,我尝试初始化列名称,如下所示,使用第三个变量(请参阅其中显示的“注意这一行”,但这不起作用。

            //PAY ATTENTION TO THIS LINE
            var columnsHeaders = [];


      var ab = $('#dynamicScenarioTable').DataTable({
              "bDestroy": true,
              "dom": 'T<"clear">lfrtip',
              "ajax": {
                    "type": "POST",
                    "url": "dynamicScenario.htm",
                    "data": tags,
                    "dataType": "json",
                    "dataSrc": function(json){
                          //PAY ATTENTION TO THIS LINE
                          columnsHeaders.push({"data": json.header });
                          return json.vals;
                    },
                    "error": function(exception)
                    {
                       displayMessageOnError();
                    }
               },  
                //PAY ATTENTION TO THIS LINE
               "columns":  [columnsHeaders],

               tableTools: tableDefaultS.tableTools
      });

有什么想法吗?

最佳答案

您可以将数据源属性添加到表标题上构建的 TH 标记。然后,您可以让 jQuery 读取这些内容并构造数组以发送到 DataTable 构造函数中。

<tr>
    <th data-source="name">Name</th>
    <th data-source="position">Postion</th>
    <th data-source="start_date">Start Date</th>
</tr>

然后在 JavaScript 中执行类似的操作来构造数组

var columnsHeaders = [];
$("#dynamicScenarioTable thead th").each(function() {
    colmnsHeaders.push(
        {
            data : $(this).data("source")
        }
    );
});

// construct your DataTable after this

关于javascript - Jquery数据表不显示列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31338411/

相关文章:

php - 将 Facebook PHP SDK 与 Javascript SDK 结合使用

javascript - 通过ajax在索引页上显示记录?

javascript - 使用 jQuery 设置 event.target 的值/文本

javascript - 等待嵌套异步调用完成

ajax - 网页上的图像在滚动进入 View 时淡入的技术名称是什么?

javascript - 使用键 react 创建元素

javascript - 使用 JUST 代码在 div 内创建工作表单

jquery - 如何手动控制我的 wordpress 网站上的折叠按钮

jquery - 如何使用each()选择第一个 radio ?

Python Selenium 等待 innerHTML