编辑:我创建了这个fiddle 这显示了这个问题。
我按照以下方式定义我的列(伪代码,请不要告诉我声明变量)
var cols = [];
cols.push({
data:theNameWithSpecialCharacters,
title:theNameWithSpecialCharacters,
render: $.fn.dataTable.render.number(",",".",3)
});
myDataTable = $('#theDataTable').DataTable({
columns: cols,
data: someDataInCorrectFormat
}).draw();
数据表已正确呈现,但它没有显示列名称中存在一些特殊字符(我的情况为[
和]
)的列的值。
欢迎任何欢迎。
答案 0 :(得分:1)
如果您使用data
选项作为字符串,括号将被解释为数组表示法。数据表documentation表示以下内容:
DataTables可以自动组合数组源中的数据,将数据与两个括号之间提供的字符连接起来。例如:name [,]将提供与源数组分隔的逗号空间列表。如果括号之间没有提供字符,则返回原始数组源。
所以你的data: "[bla]"
正在寻找一个未命名的数组(它不存在,因此是空列)来显示其元素之间的bla。不幸的是,似乎没有办法逃避字符串中的括号。
最简单的解决方法是使用data
作为函数并从对象中获取值。
cols.push({
data: function(row) {
return row["[bla]"];
},
title:"[bla]",
render: $.fn.dataTable.render.number(",",".",3)
});
这是您更新的fiddle。
修改强> 如果您不知道注释中提到的OP之类的列名,则数据函数可以与列的索引一起使用。
cols.push({
data: function(row, type, set, meta) {
return row[theColumns[meta.col].theColumnName];
},
title: theColumns[i].theColumnName,
render: $.fn.dataTable.render.number(",",".",3)
});
另一个fiddle。