我基本上使用DataTables作为我的小应用程序 .
我希望能够保存搜索 . 比如说我有一张颜色和数量名称的 table . 如果我输入红色,它将过滤掉搜索并显示红色及其各自的数量 . 现在,如果我转到另一个页面并返回到DataTable页面,我希望结果和搜索仍然存在 .
所以我做了一点研究,发现有一种叫做保存状态的东西可以设置为true来得到这个结果 . 资料来源:https://datatables.net/examples/basic_init/state_save.html
但它对我不起作用 . 如果有人能帮助我,我将不胜感激 .
以下是我的代码
function ttable_draw_table(table_object,event_callback_function,target,args){
var title = table_object.name.split('-').slice(1).join(' ');
var title = title.charAt(0).toUpperCase()+title.slice(1);
var header = '<div class="row"><div class="col-sm-2"><a type="button" class="btn btn-primary" href="#!/'+table_object.data.add+'/" style="width:100%"><i class="glyphicon glyphicon-pencil"></i> New</a></div>';
header += '<div class="col-sm-7"><h1 style="margin:0px;">'+title+'</h1></div>';
//header += '<div class="col-sm-2 hidden-xs"><a type="button" class="btn btn-primary" href="csv/all" style="width:100%"><i class="glyphicon glyphicon-save"></i> CSV</a></div>';
header += '<div class="col-sm-3 hidden-xs"><a type="button" class="btn btn-primary" id="ttable-clear-filter" style="width:100%"><i class="glyphicon glyphicon-remove-circle"></i> Clear Search</a></div></div>';
target.html(header+'<div class="table-responsive"><table class="table table-striped" id="ttable-'+table_object.name+'" ></table></div>');
rowString = '<thead><tr>';
//This is the CODE TO SAVE THE SEARCH
$(document).ready(function() {
$('#ttable').dataTable( {
stateSave: true
} );
} );
for (var column_index in table_object.data.columns) {
rowString += '<th>'+table_object.data.columns[column_index]+'</th>';
}
rowString += '</tr></thead>';
$('#ttable-'+table_object.name).append(rowString);
rowString = '<tbody>';
for (var row in table_object.data.rows) {
rowString += '<tr rowid="'+row+'">';
for (var column_index in table_object.data.columns) {
if (table_object.data.rows[row][column_index] == null) {
table_object.data.rows[row][column_index] = 'TBD';
}
rowString+='<td>'+table_object.data.rows[row][column_index]+'</td>';
}
rowString += '</tr>';
}
rowString += '</tbody>';
$('#ttable-'+table_object.name).append(rowString);
if (args.search === undefined) { args.search = ''; }
$('#ttable-'+table_object.name).dataTable({
iDisplayLength: 50,
fnRowCallback: function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
$(nRow).on('click', function() {
event_callback_function(table_object, $(this).attr('rowid'));
});
}
}).fnFilter(args.search);
$('#ttable-clear-filter').click(function() {
$('#ttable-'+table_object.name).dataTable().fnFilter('');
});
}