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

时间:2015-07-07 21:49:25

标签: javascript jquery datatables

我有一张表,我想手动搜索。看完API后,我发现我可以做到:

table.search(somestring).draw();

这应该搜索表并重绘它,或者我假设。

$(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>

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

1 个答案:

答案 0 :(得分:1)

您已使用searching: false停用了搜索功能,有关详细信息,请参阅searching选项。

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

如果您只想隐藏过滤控件,请使用dom: 'lrtip',有关详细信息,请参阅dom选项。