2015-04-28 156 views
0

我的dataTable版本是1.10.4。 我通過傳遞Javascript源數據填充數據表從JavaScript獲取過濾的數據數據源數據表

var dataSet = [ 
    ['Trident','Internet Explorer 4.0','Win 95+','4','X'], 
    ['Trident','Internet Explorer 5.0','Win 95+','5','C'] 
     ---- 
];  ---- 


    $(document).ready(function() { 
     $('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>'); 

$('#example').dataTable({ 
    "data": dataSet, 
    "columns": [ 
     { "title": "Engine" }, 
     { "title": "Browser" }, 
     { "title": "Platform" }, 
     { "title": "Version", "class": "center" }, 
     { "title": "Grade", "class": "center" } 
    ] 
}); 

});

現在我有一個搜索輸入來根據輸入過濾表格。 我試圖獲取表格中返回並呈現的過濾數據。

例如,如果用戶搜索輸入爲 'C' 然後我應該得到濾波的數據

var數據= [ [ '三叉戟', '的Internet Explorer 5.0', '運95 +','5 ','C'] ];

是否有任何標準的方式獲取數據表中的過濾數據?

如果不是我想關鍵的陣列高達

$("#searchInput").on('keyup change', function() { 
        // get the filtered JavaScript data 
       }); 

請參考JSFIDDLE HERE

回答

0

這是給你一個例子搜索; 您可以刪除按鈕並將onchange添加到您的區域。

Search <input type="text" id="searchText"> 
<input type = "button" onClick="searchAndUpdate()"> 

這是函數;

 function searchAndUpdate(){ 
     var searchText = $('#searchText').val(); 
     var resultTable = []; 
     dataSet.forEach(function(element) { 
      var objString = JSON.stringify(element); 
      if(objString.indexOf(searchText)!=-1){ 
       resultTable.push(element); 
      } 
     }); 
     console.log(resultTable); 

     //update your table 
    } 

注意:你必須更新表格。 Here EXAMPLE.

2

可以使用search.dt事件爲這個(這裏假設你已經存儲在table變量DataTable的實例):

$("#example").on('search.dt', function() { 
    var filteredRows = table 
         .api() 
         .rows({order:'index', search:'applied'}) 
         .data(); 

    for (var i=0; i<filteredRows.length; i++) { 
     console.log(filteredRows[i]); 
    };  
});   

這將呼應所有的過濾行從控制檯中相同的順序,因爲他們在你的dataSet對象聲明:

["Gecko", "Firefox 3.0", "Win 2k+/OSX.3+", "1.9", "A"] 
["Gecko", "Camino 1.0", "OSX.2+", "1.8", "A"] 
["Gecko", "Camino 1.5", "OSX.3+", "1.8", "A"] 
["Gecko", "Netscape 7.2", "Win 95+/Mac OS 8.6-9.2", "1.7", "A"] 

注意,如果你instantiat e與DataTable()而不是dataTable()您的表,您將不需要0​​參考。

叉小提琴 - >http://jsfiddle.net/fpbokb68/


看到https://datatables.net/reference/type/selector-modifier用不同的方式來提取行了一個數據表實例的實例。