我在Grails应用程序中有一个工作DataTable,我想存储排序顺序。页面上有一个“保存”按钮,它提交回控制器,然后使用相同的DataTable呈现相同的页面。 stateSave每次都有效,除了在打开应用程序后第一次点击“保存”按钮。如果我关闭应用程序并重新打开它,请选择要排序的列,然后单击“保存”,按排序的列将是前四列中的任何一列。如果我第二次更改正在排序的列,并再次点击“保存”,则排序顺序会被正确保留。这种情况发生在Chrome,Firefox和IE上。有没有人看过这个或者有没有人有关于stateSave的信息可能有助于调试?我的表定义如下:
var example = $("#example");
var table = example.DataTable({
"data": dataSet,
bFilter: true,
stateSave: true,
"searching": true,
"processing": true,
"serverSide": false,
"bPaginate": true,
"iDisplayLength": 25,
"bSortCellsTop" : true,
"lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
"columns": [
{ "name" : "Column 1" },
{ "name" : "Column 2" },
{ "name" : "Column 3" },
{ "name" : "Column 4" },
{ "name" : "Column 5" },
{ "name" : "Column 6" },
{ "name" : "Column 7" },
{ "name" : "Column 8" },
{ "name" : "Column 9" },
{ "name" : "Column 10" },
{ "name" : "Column 11" },
{ "name" : "Column 12" }
],
"columnDefs": [{"targets":[6,7,8,9,10], "orderable":false}],
"dom": '<"top"f<"dt-info"i><"dt-paginate"l>p<"clear">>rt<"bottom"<"dt-info"i><"dt-paginate"l>p<"clear">>',
tableTools: {
"sSwfPath": "<g:createLink controller="exampleController" action="exampleAction" absolute="false"/>/exampleFile",
"aButtons": [
]
},
"createdRow": function ( row, data, index ) {
$(row).attr('id', 'row_' + index);
},
"order" : [[ 4, "asc" ]]
});