gpt4 book ai didi

javascript - 数据表 - 动态列

转载 作者:行者123 更新时间:2023-12-01 00:47:35 25 4
gpt4 key购买 nike

我知道这个问题之前已经被问过,但我的变体与其他答案不匹配。

我有一个这种形式的 json 数据源:

    {
"columns":[
{"title":"Store Number","data":"StoreNbr"},
{"title":"Store Name","data":"StoreName"},
{"title":"2016-01-01","data":"2016-01-01"},
{"title":"2016-01-02","data":"2016-01-02"}
],
"data":[
{"2016-01-01":"51","StoreNbr":"1","StoreName":"Store 1","2016-01-02":"52"}
]
}

我正在加载这样的数据:

$("#datatable").DataTable({
"ajax": {
"url": "http://myjsonurl-that-produces-above-response",
"dataSrc": "data"
},

"columns": [
{"title":"Store Number","data":"StoreNbr"},
{"title":"Store Name","data":"StoreName"},
{"title":"2016-01-01","data":"2016-01-01"},
{"title":"2016-01-02","data":"2016-01-02"},
],
dom: "Bfrtip",
"bProcessing": true,
"bServerSide" : true
});

以上工作完美无缺。我需要的是动态加载列,如下所示:

"columns": $.getJSON($('#datatable').DataTable().ajax.url(), 
function(json){
return (JSON.stringify(json.columns));
});

我得到的只是一个数据源错误。如果我在代码中的其他任何地方运行 .getJSON ,我会得到预期的响应,即我需要的响应。有什么想法吗?

我想让它工作,因为它最好是因为我的数据源根据我应用的影响 json 源、数据集等的过滤器不断变化。

更新:

表的初始化方式:

<script type="text/javascript"> 
TableManageButtons.init();

TableManageButtons = function () {"use strict"; return { init: function () { handleDataTableButtons() } }}();

var handleDataTableButtons = function () {
"use strict";
0 !== $("#datatable-buttons").length && $("#datatable-buttons").DataTable({
"ajax": {
"url": "http://myjsonurl.php",
.......

最佳答案

尝试先获取列,然后继续数据表初始化:

$.getJSON('url/for/colums', function(columnsData) {
$("#datatable").DataTable({
...
"columns": columnsData
});
});

编辑

如果我理解正确的话,你想要这样做:

$("#datatable").DataTable({
"ajax": {
"url": "http://myjsonurl-that-produces-above-response",
"dataSrc": "data"
},
"columns": getColumns(), //Execute $.getJSON --> asynchronous (the code continous executing without the columns result)
dom: "Bfrtip",
"bProcessing": true,
"bServerSide" : true
});

这样,当您调用 getColumns() 时,执行是异步的,因此列将是未定义的。

这就是为什么您必须在 getJSON 回调函数中调用 DataTable 初始值设定项。

另一种方法可能是在非异步函数设置中获取列async: false(检查 this question )

关于javascript - 数据表 - 动态列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37070552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com