如何在Jquery中重新初始化DataTable

时间:2015-04-29 13:23:40

标签: c# jquery asp.net datatable

我有一个要求,我必须存储 DataTable 的状态,如'分页','排序','搜索'等。为此,我有将“ bStateSave ”属性设置为“ True ”,这非常有效。我知道'bStateSave'以 Cookie 的形式保存状态。现在我有另一个要求,我必须重置 DataTable 并在用户登录时重新初始化它。

外汇:

SqlConnection

如上例所示,“ sessionUserLogin ”告诉用户是否登录系统,如果此标志( sessionUserLogin )设置为True,我想销毁以前的状态并再次初始化表,以便它可以继续保存状态。其他条件用于处理系统中的其他回发,因为用户登录后我想维持表的状态,即使在回发之后,如任何 DropDown 更改或保存记录。

我的上述代码在用户登录时工作正常,我能够清除表的状态,但我无法再次初始化表状态。

我已经完成了这个URL。但仍然无法找到解决方案。

请帮忙。提前致谢。

2 个答案:

答案 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); }
                    });
                }