如何防止重新加载后重绘jQuery DataTable工具

时间:2016-10-05 07:14:34

标签: javascript jquery asp.net-mvc datatable datatables

我使用jQuery DataTable并且在jQuery DataTable上有一些工具,例如Filter,Checkbox等,并在调用每个 table.ajax.reload()之后,所有这些工具都在回调时呈现AJAX请求和这导致复选框值无法保持。那么,有没有办法阻止DataTable的工具栏在每次重新加载时重绘?另一方面,重新加载后保留复选框值的最佳方法是什么(即使用隐藏值或cookie)?

<input type="hidden" id="key" name="Key" />

$(document).ready(function () {

//code omitted for brevity
"fnServerData": function (sSource, aoData, fnCallback) {
    aoData.push({ "name": "all", "value": $('#key').val() });                   
    $.getJSON(sSource, aoData, function (json) {
        fnCallback(json);
        $("div.toolbar").html('<input type="checkbox" name="GetAll" 
            id="isGetAll" value="$('#key').val()"/> Get all records');
    });
},
//...



    $(document).on('change', '#isGetAll', function () {

        if ($("#key").val()) {
            $("#key").val('TRUE');
        } else {
            $("#key").val('FALSE');
        }
        table.ajax.reload();
    });
});

1 个答案:

答案 0 :(得分:0)

尝试使用数据表的状态保存属性。

  $(document).ready(function() {
    $('#example').DataTable( {
        stateSave: true
    } );
} );

Reference 1

Reference 2

This thread may help You.