DataTables似乎将点(.
)视为特殊字符,并且不会显示列中的列。
有没有解决方法如何保持点数并使用某种转义字符?
错误是:请求的未知参数' Doc。'对于第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"
}
]
}
答案 0 :(得分:6)
当数据属性名称中有点时,dataTables将查找嵌套数据属性。就像有function addToGroups() {
var results = []
collectGroups(0)
function collectGroups(offset){
//async API call
sc.get('/tracks/'+ CURRENT_TRACK_ID +'/groups?limit=50&offset=' + offset , OAUTH_TOKEN, function(error, data){
if (data.length > 0){
results.push(data)
// keep requesting new groups
collectGroups(offset + 50)
}
// finished
else {
//finish promise
}
})
}
}
属性一样。当您拥有自动化脚本时 - 服务器正在分发不一定是为dataTables设计的JSON,您可以在将数据传递给dataTable之前对其进行“清理”。
我从昨天开始回答并添加了两个功能:Doc.<something>
和sanitizeData
。 sanitizeColumns
从密钥中删除所有点和空格,sanitizeData
从sanitizeColumns
定义中删除空格和点:
columns.data
演示 - &gt;的 this 强>
答案 1 :(得分:2)
试试这个:
"columns": [
{
"data": "Doc.",
"title": "Doc."
},
{
"data": "Order no.",
"title": "Order no."
}
],
"data": [
{
"Doc.": "564251422",
"Order no.": "56421"
},
{
"Doc.": "546546545",
"Order no.": "98745"
}
]
虽然这也有效:
"columns": [
{
"data": "Doc.",
"title": "Doc."
},
{
"data": "Order no.",
"title": "Order no."
}
],
"data": [
{
"Doc": "564251422",
"Order no": "56421"
},
{
"Doc": "546546545",
"Order no": "98745"
}
]
答案 2 :(得分:0)
我知道我参加晚会很晚,但是我解决这个问题的方法是替换所有的“。”与“ \\”。在数据表选项的“列”值中。
数据表仍然可以找到带有句点的值,并且不会崩溃。我在这里找到此信息:https://datatables.net/reference/option/columns.data
我在将项目添加到列对象中时所做的全部操作是
for(var i =0; i < columnNames.length;i++){
//replaces all "." with "\\." which datatables ignores
columnNames[i] = columnNames[i].replace(/\./g,'\\.');
}
//other code goes here
var datatableOptions = {
'data': myData,
columns: tableColumns,
};