我基本上使用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('');
  });
}