我有一个用datatable.js创建的数据表。
我使用名称为
的对象和列设置我的表{ "title": "image", "data": "foo1", "className": "dt-center" },
{ "title": "id", "data": "foo.bar", "className": "dt-center" },
{ "title": "name", "data": "lorem", "className": "dt-center" }
我正在尝试动态添加一行。我使用以下代码执行此操作:
var Json = {
"foo1" : '5',
"foo.bar" : '3',
"lorem" : 'True'
}
var rtn = oTable.fnAddData(Json );
问题是,我收到了error “请求的未知参数”foo.bar“for row n”。 This页面表示需要使用\\
转义句点。
不幸的是,这不可靠。
这是我在每个位置使用的反斜杠数(\
)的表格。
如何逃避这一点,以便它在两个地方都有效?
答案 0 :(得分:1)
我相信您的原始数据采用下面显示的格式,这是columns.data中点缀符号(foo.bar
)最初工作的唯一解释。
{
"foo1": '5',
"foo": { "bar": '3'},
"lorem": 'True'
}
columns.data中的虚线表示法(foo.bar
)允许从嵌套对象中读取,因此foo.bar
引用名为bar
的属性的foo
子属性。
您必须以相同的格式将数据传递到fnAddData
,因此您需要使用以下代码:
var Json = {
"foo1" : '5',
"foo": { "bar" : '3' },
"lorem" : 'True'
};
var rtn = oTable.fnAddData(Json);
请参阅下面的示例以获取代码和演示。
$(document).ready(function() {
var oTable = $('#example').dataTable({
'columns': [
{ "title": "image", "data": "foo1", "className": "dt-center" },
{ "title": "id", "data": "foo.bar", "className": "dt-center" },
{ "title": "name", "data": "lorem", "className": "dt-center" }
]
});
var Json = {
"foo1" : '5',
"foo": { "bar" : '3' },
"lorem" : 'True'
};
var rtn = oTable.fnAddData(Json );
});
<link href="//cdn.datatables.net/1.10.7/css/jquery.dataTables.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>
<table id="example" class="display" cellspacing="0" width="100%">
</table>
答案 1 :(得分:0)
这很可能是插件代码本身的问题。尝试完全从JSON键值foo.bar