我有一个DataTable,可以随时添加/删除/重新创建N个子DataTable。我希望孩子们共享初始化参数,但似乎DataTables会影响原始数据结构。
添加两个子节点并对第一个子节点进行排序时,第二个子节点将在重新创建时继承排序。我在这里创造了一个小提琴:http://jsfiddle.net/wthY9/44/
var myDataTable;
var index = 0;
var parentParams = {
"order":[],
"columns":[
{"name":"Col 1"},
{"name":"Col 2"},
{"name":"Col 3"},
{"name":"Col 4"},
],
};
var childParams = {
"columns":[
{"name":"Col 1"},
{"name":"Col 2"},
{"name":"Col 3"},
],
"order":[],
};
$(document).ready(function(){
myDataTable = $('#myTable').DataTable(parentParams);
$('#createChild').click(function(e){
e.preventDefault();
if(typeof myDataTable.row(index).child() == "undefined"){
var $table = $($('#child_table').html());
$table.css('width','100%');
var newChildParams = $.extend({}, childParams);
var childTable = $table.DataTable(newChildParams);
myDataTable.row(index).child(
childTable.table().container()
);
}
myDataTable.row(index).child.show();
index++;
});
- $('#recreateChild').click(function(e){
e.preventDefault();
var lastIndex = index - 1;
var $table = $($('#child_table').html());
$table.css('width','100%');
var childTable = $table.DataTable(childParams);
myDataTable.row(lastIndex).child(
childTable.table().container()
);
myDataTable.row(lastIndex).child.show();
});
$('#hideChild').click(function(e){
myDataTable.row(--index).child.hide();
});
});
步骤:
如何重新创建子项并保持重新创建子项的排序顺序?
编辑:由于没有答案也没有评论,我已将此问题双重发布到DataTables forum。
答案 0 :(得分:1)