2015-11-19 20 views
6

Bir sütun aramasını ve belirli sütunlarda normal aramayı birleştirmeye çalışıyorum. Eğer this example bakarsakDataTables'ta birden çok sütunu nasıl arayabilirim?

, ben "normal" arama ile sütunlar Name ve Position, arama, ve geri kalan görmezden isterler, ama yine de bir değer seçmek için mümkün istiyorum Office sütununun altı.

bunu kullanmaktan çalıştık:

columnDefs: [{ 
    targets: [2], 
    searchable: false 
}] 

Ama bu da kolon aramayı devre dışı bırakır.
Ben de birden çok sütun üzerinde özel aramayı yazmaya çalıştı:

var search = 'Software'; 
$('#example').DataTable().column(0).search(search).draw(); 
$('#example').DataTable().column(1).search(search).draw(); 

Ama bu sadece İKİ sütunları arama değerini içeren satırları yerine 1 tanesi görülmektedir. (Bu gerçekleşmez).

Ayrıca columns().search() da denedim, ancak bu yukarıdaki özel arama ile aynı sonucu verir.

Tek tek sütun aramayı nasıl etkinleştirebilirim, ancak genel aramadaki aynı sütunu nasıl devre dışı bırakabilirim?

cevap

10

Bir custom filter ile arama/filtresinde inşa geçersiz kılabilirsiniz: Bu "normal arama" sadece Name ve Position, ilk iki sütun için geçerlidir By

$('.dataTables_filter input').unbind().on('keyup', function() { 
    var searchTerm = this.value.toLowerCase(); 
    $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) { 
     //search only in column 1 and 2 
     if (~data[0].toLowerCase().indexOf(searchTerm)) return true; 
     if (~data[1].toLowerCase().indexOf(searchTerm)) return true; 
     return false; 
    }) 
    table.draw(); 
    $.fn.dataTable.ext.search.pop(); 
}) 

- ve hala seçme kutuları çalışma var altbilgide Çatallı keman ->https://jsfiddle.net/g9gLjtjh/

İlgili konular