我有一个要求,我必须存储 DataTable 的状态,如'分页','排序','搜索'等。为此,我有将“ bStateSave ”属性设置为“ True ”,这非常有效。我知道'bStateSave'以 Cookie 的形式保存状态。现在我有另一个要求,我必须重置 DataTable 并在用户登录时重新初始化它。
外汇:
SqlConnection
如上例所示,“ sessionUserLogin ”告诉用户是否登录系统,如果此标志( sessionUserLogin )设置为True,我想销毁以前的状态并再次初始化表,以便它可以继续保存状态。其他条件用于处理系统中的其他回发,因为用户登录后我想维持表的状态,即使在回发之后,如任何 DropDown 更改或保存记录。
我的上述代码在用户登录时工作正常,我能够清除表的状态,但我无法再次初始化表状态。
我已经完成了这个URL。但仍然无法找到解决方案。
请帮忙。提前致谢。
答案 0 :(得分:0)
您可以尝试使用下面的destroy
方法
var table = $('#myTable').DataTable();
if (sessionUserLogin == 'True') {
table.destroy();
$('#YourTableID').empty();
$('#YourTableID').DataTable( {
"bStateSave": true
});
}
else {
$("#YourTableID").DataTable({ "bStateSave": true });
}
修改强>
var table = $('#myTable').DataTable();
if (sessionUserLogin == 'True') {
table.destroy();
$('#YourTableID').empty();
table = $('#YourTableID').DataTable( {
"bStateSave": true
});
}
else {
table = $('#YourTableID').DataTable( {
"bStateSave": true
});
}
答案 1 :(得分:0)
最后,我可以使用下面的代码对此进行排序,您可以将常用函数置于条件之外:
if (sessionUserLogin == 'True') {
function save_dt_view(oSettings, oData) {
localStorage.setItem('DataTables_' + window.location.pathname, JSON.stringify(oData));
}
function load_dt_view(oSettings) {
return JSON.parse(localStorage.getItem('DataTables_' + window.location.pathname));
}
function reset_dt_view() {
localStorage.removeItem('DataTables_' + window.location.pathname);
}
reset_dt_view();
$('#myTableId').dataTable({
"bStateSave": true,
"fnStateSave": function (oSettings, oData) { save_dt_view(oSettings, oData); },
"fnStateLoad": function (oSettings) { return load_dt_view(oSettings); }
});
}
else {
function save_dt_view(oSettings, oData) {
localStorage.setItem('DataTables_' + window.location.pathname, JSON.stringify(oData));
}
function load_dt_view(oSettings) {
return JSON.parse(localStorage.getItem('DataTables_' + window.location.pathname));
}
function reset_dt_view() {
localStorage.removeItem('DataTables_' + window.location.pathname);
}
$('#myTableId').dataTable({
"bStateSave": true,
"fnStateSave": function (oSettings, oData) { save_dt_view(oSettings, oData); },
"fnStateLoad": function (oSettings) { return load_dt_view(oSettings); }
});
}