我使用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();
});
});
答案 0 :(得分:0)
尝试使用数据表的状态保存属性。
$(document).ready(function() {
$('#example').DataTable( {
stateSave: true
} );
} );