Pet*_* G. 4 datatable json datatables jquery-datatables-editor datatables-1.10
DataTables似乎将点(.)视为特殊字符,并且不显示在标题中包含点的列。
有什么解决办法如何保留点并使用某种转义符?
错误为:请求的未知参数“文档”。对于第0行,第0列
我的JSON DataTable初始化程序:
{
"columns": [
{
"data": "Doc.",
"title": "Doc."
},
{
"data": "Order no.",
"title": "Order no."
}
],
"data": [
{
"Doc.": "564251422",
"Order no.": "56421"
},
{
"Doc.": "546546545",
"Order no.": "98745"
}
]
}
Run Code Online (Sandbox Code Playgroud)
当数据属性名称中有点时,dataTables将查找嵌套的数据属性。就像Doc.<something>有财产一样。当您拥有自动化脚本时(如您所愿),服务器将分发不一定为dataTables设计的JSON,则可以在将数据传递给dataTables之前对其进行“清理”。
我从昨天得到答案,并添加了两个功能:sanitizeData和sanitizeColumns。sanitizeData从键中删除所有点和空格,sanitizeColumns从columns.data定义中删除空格和点:
$.getJSON('https://api.myjson.com/bins/4z5xd', function(json) {
//remove whitespace and dots from keys / attribute names
function sanitizeData(jsonArray) {
var newKey;
jsonArray.forEach(function(item) {
for (key in item) {
newKey = key.replace(/\s/g, '').replace(/\./g, '');
if (key != newKey) {
item[newKey]=item[key];
delete item[key];
}
}
})
return jsonArray;
}
//remove whitespace and dots from data : <propName> references
function sanitizeColumns(jsonArray) {
var dataProp;
jsonArray.forEach(function(item) {
dataProp = item['data'].replace(/\s/g, '').replace(/\./g, '');
item['data'] = dataProp;
})
return jsonArray;
}
json.data = sanitizeData(json.data);
json.columns = sanitizeColumns(json.columns);
$('#example').DataTable({
data : json.data,
columns : json.columns
})
});
Run Code Online (Sandbox Code Playgroud)
演示-> http://jsfiddle.net/egpxdsq7/
| 归档时间: |
|
| 查看次数: |
1547 次 |
| 最近记录: |