2017-04-13 114 views
0

我正在使用DataTables,我試圖在下拉列表中搜索結果。但不是搜索一列,我需要搜索兩個特定的列。DataTables - 在一個下拉列表中搜索多個列

以下語法適用於單個列,但我如何使用多列來完成此操作?

var table = $('#example1').DataTable(); 
    $("#filter").on('change', function() { 
     table.column([4]).search($(this).val()).draw(); 
    });  

我試着這樣做,但是當我用這個代碼僅搜索結果中的第一列,例如第四列。並忽略其餘。

 table.column([4,5]).search($(this).val()).draw(); 

這是什麼適當的方法?

+0

可能的重複[如何搜索DataTable中的多個列](http://stackoverflow.com/questions/33799176/how-can-i-search-multiple-columns-in-datatables) – Terry

+0

不是重複因爲範圍搜索在不同輸入的給定範圍內的單個列上執行搜索。 – mmushtaq

+0

@Terry這不是一樣的抱歉。我需要在兩個特定的列中進行搜索。 –

回答

1

讓這裏概括所有的東西。它也會幫助其他人。

可以實現這一點如下:

table.column(4).search(this.value).column(5).search(this.val‌​ue).draw(); 

它將在4列執行搜索(圖4是列的索引),在此之後它將從靠設置過濾器值5列,並在端部過濾數據它會畫出表格。

需要注意的一點是,Filter應用於兩列,因此兩列必須包含匹配的數據。

Here is its filddle


這可以通過使用fnMultiFilter因爲它文檔解釋來實現:

此插件增加數據表在單個呼叫設置多個列過濾方面的能力(如果使用服務器端處理特別有用)。與列sName參數結合使用時,只需傳入一個對象,其中鍵/值對是您希望搜索的列,以及您希望搜索的值。