【发布时间】:2019-05-15 08:29:22
【问题描述】:
我有一个 JQuery DataTable,我已经使用了一段时间,我想我在这里遗漏了一些东西。
但是我最近遇到了直接绑定 JSON 数据的要求之一。
例如,我的 JSON 看起来像来自 API:
[{"componentNumber":"ABC","factory":"India","productNumber":"CR","productRevisionState":"123","placementTimeLocal":"2018-08-21T00:00:00","position":"up"},{"componentNumber":"ABC","factory":"India","productNumber":"CR","productRevisionState":"123","placementTimeLocal":"2018-08-21T00:00:00","position":"up"},
{"componentNumber":"ABC","factory":"India","productNumber":"CR","productRevisionState":"123","placementTimeLocal":"2018-08-21T00:00:00","position":"up"}]
我知道我可以使用 JSON 并在 Jquery 中取出列并将其传递给 Datatables 列,但是如果有一种简单的方法可以让 Datatable 自动获取列,例如:
$.ajax({
type: "Post",
url: "http://localhost:5555/myapi",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//datasource = data;
$('#myTable').DataTable({
"Data": JSON.parse(data),
"Columns" : JSON.parse(data)
});
},
error: function (err) {
alert(err);
}
})
我正在寻找的是:
JQuery 有没有这样的特性?如果没有,你能建议 任何其他可快速处理大型数据集的 Datatable 库。
我想摆脱围绕代码的所有额外循环
- 我无法更新返回数据的源系统
更新版本的代码,取自以下答案,感谢 Kiran 让我动了一点:
$.ajax({
type: "Post",
url: "http://localhost:5555/myapi",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
// **how to get rid of this loop? for looping columns**
var adColumns = [];
$.each(data[0], function (i, item) {
var col = {
data: i,
title: i
};
adColumns.push(col);
})
//datasource = data;
console.log(data);
$('#myTable').DataTable({
"data": data,
"info": true,
"paging": true,
"columns": adColumns
});
},
error: function (err) {
alert(err);
}
})
【问题讨论】:
-
请参考此链接datatables.net/examples/data_sources/ajax 并仔细检查您的 json 数据原样或内容。谢谢。
标签: javascript jquery jquery-ui data-binding datatables