2015-11-19 7 views
6

मैं कॉलम खोज और विशिष्ट कॉलम पर सामान्य खोज को गठबंधन करने की कोशिश कर रहा हूं।मैं डेटाटेबल्स में एकाधिक कॉलम कैसे खोज सकता हूं?

आप this example को देखें, तो मैं "सामान्य" खोज के साथ कॉलम Name और Position, खोज, और यह के बाकी की उपेक्षा करने में सक्षम होना चाहता हूँ, लेकिन मैं अभी भी एक मूल्य का चयन करने के सक्षम होना चाहते हैं Office कॉलम के नीचे।

मैं इस का उपयोग करने की कोशिश की है:

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

लेकिन यह भी स्तंभ खोज अक्षम करता है।
मैं भी एकाधिक स्तंभों पर एक कस्टम खोज लिखने का प्रयास किया:

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

लेकिन यह केवल पंक्तियों जहां दोनों स्तंभों खोज मूल्य होते हैं, के बजाय उनमें से 1 को दर्शाता है। (जो नहीं होता है)।

मैंने columns().search() भी कोशिश की, लेकिन यह उपरोक्त कस्टम खोज के समान परिणाम देता है।

मैं व्यक्तिगत कॉलम खोज कैसे सक्षम कर सकता हूं, लेकिन समग्र खोज से उसी कॉलम को अक्षम कर सकता हूं?

उत्तर

10

आप ओवरराइड कर सकते हैं एक custom filter साथ खोज/फिल्टर में बनाया गया:

$('.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(); 
}) 

इस "सामान्य खोज" केवल, पहले दो कॉलम पर लागू होता Name और Position करके - और आप अभी भी चयन बक्से काम कर रहा है पाद लेख में फोर्कड फिडल ->https://jsfiddle.net/g9gLjtjh/

संबंधित मुद्दे