手动搜索后DataTable为什么不重绘

Why won't DataTable redraw after manual search

我有一个 table,我想手动搜索它。查看 API 后,我发现我可以这样做:

table.search(somestring).draw();

这应该搜索 table 并重新绘制它,或者我假设如此。

$(document).ready(function(){

  var table = $('table').DataTable({
    searching: false,
    paging: false,
    info: false
  }); 

  // add a bunch of rows
  for(var i=0; i<20; i++){
      table.row.add([
      "test "+i, "best "+i, "rest "+i
    ]);
  }

  // draw the table
  table.draw();

  // why won't table redraw with only rows containing 15?
  table.search('15').draw(); 

  // this doesn't work either
  /*
  $('input').on( 'keyup click', function () {
        filterColumn( 1 ); // filter only first column
    } );
  */
});

function filterColumn ( i ) {
  console.log( $('input').val() );
  $('table').DataTable().column( i ).search(
      $('input').val()
  ).draw();  
}

HTML:

<input>

<table>
  <thead>
    <tr>
      <th>column 1</th>
      <th>column 2</th>
      <th>column 3</th>
    </tr>
  </thead>
  <tbody>

  </tbody>
</table>

笨蛋:http://plnkr.co/edit/BlwWWw7mlpde4vKqoX2q?p=preview

您使用 searching: false 禁用了搜索功能,请参阅 searching 选项了解更多详情。

您需要使用 searching: true 启用搜索或删除此选项才能使 search() 方法起作用。

如果您只想隐藏过滤控件,请使用 dom: 'lrtip',请参阅 dom 选项了解更多详情。