2016-02-09 82 views
0

我使用成功後,該代碼如何禁用在特定DataTable列中的搜索?

function refreshDataTable() { 
     // The table is made sortable 
     $('#order_proposal_table').DataTable({ 
      'destroy'   : true,  // see http://datatables.net/manual/tech-notes/3#destroy - 2nd example 
      'paging'   : false, 
      'scrollCollapse' : true, 
      'scrollY'   : '65vh', 
      'fixedHeader'  : true, 
      'dom'    : 'rt', 
     }); 
    } 

然後我想能夠在9列的2搜索。

因此,我改變

'dom'    : 'rt', 

'dom'    : 'frt', 

要顯示查找輸入框。這是有效的,但它搜索槽的每一列,但我只需要搜索到2列。

所以我想按照這個official guide to disable filtering選擇性,並添加columns定義

結果代碼:

function refreshDataTable() { 
     // The table is made sortable 
     $('#order_proposal_table').DataTable({ 
      'destroy'   : true,  // see http://datatables.net/manual/tech-notes/3#destroy - 2nd example 
      'paging'   : false, 
      'scrollCollapse' : true, 
      'scrollY'   : '65vh', 
      'fixedHeader'  : true, 
      'dom'    : 'frt', 
      'columns'   : [   // see https://datatables.net/reference/option/columns.searchable 
       { 'searchable': false }, 
       { 'searchable': false }, 
       null, // product code 
       null, // description 
       { 'searchable': false } 
      ] 
     }); 
    } 

的問題是,我從數據表中的javascript已經一個javscript錯誤

TypeError: col is undefined

刪除columns該代碼有效。

我在做什麼錯?

回答

6

我使用columnsDef選項解決了問題。

以下代碼禁用搜索指定的列。正是我想要的。

'columnDefs'  : [   // see https://datatables.net/reference/option/columns.searchable 
       { 
        'searchable' : false, 
        'targets'  : [0,1,4,5,6,7,8,9] 
       }, 
      ] 
1

您是否嘗試過爲其餘4列傳遞null而不是隻指定前5個?所以:

'columns': [ 
      { 'searchable': false }, 
      { 'searchable': false }, 
      null, 
      null, 
      { 'searchable': false }, 
      null, 
      null, 
      null, 
      null 
     ] 

我會張貼此作爲評論,但我不能包括該示例。