Bu gibi benim jquery bir datatable inşa çalışmaz:jQuery DataTable birden filtrering
var ticketDataTable = $("#ticketDataTable").DataTable({
serverSide: true,
ajax: {
url: ajaxUrl,
type: "POST",
data: function(data) {
data.ticketStatusFilter = ketStatusCheckboxes.filter(':checked')
.map(function() { return this.value; }).get()
.join(';')
}
},
columns: [
{
name: "ticket.ticketNumber",
data: "0.ticketNumber"
},
{ },
{ },
{ },
{ },
{ },
{ },
{ },
{ },
{ },
{ },
{ },
{ },
{ },
{ },
{ }
],
bSortCellsTop: true,
dom: 'rt<lp>',
order: [[2, "desc"]] // Sort by descending date
});
Tüm sütunlar aynı şekilde inşa edilir. Ardından, çoklu filtre yapmak için onay kutularını içeren bir açılır liste oluşturmak için sumoSelect eklentisini kullanıyorum.
$("table#ticketDataTable thead tr th#multiSelectFilter").find("select").SumoSelect({ selectAll: true });
İyi çalışıyor. Daha sonra, giriş değişimi (i seçimler kontrol ederken), ne zaman bunu yapmak:
var arr = $("table#ticketDataTable thead tr th#multiSelectFilter").find("select")[0].sumo.getSelStr();
Böyle bir sonuç almak: "FIRST|SECOND|THIRD"
veya "SECOND"
veya "FIRST|SECOND"
.
ticketDataTable.column(5).search(arr,true,true).draw();
Ancak, yalnızca bir seçenekle çalışır. Birden fazla varsa ("İLK | İKİNCİ" gibi), işe yaramıyor.
Özel filtreler oluşturmanız ve buna göre filtrelemek için kullanmanız gerekir. Bu https://datatables.net/examples/plug-ins/range_filtering.html adresine bakın, daha fazla yardıma ihtiyacınız varsa bildirin ( –
Evet, ancak sayı sütununda filtrelemek istemiyorum ancak metin/dizgi sütununda. – DyM
sadece bir örnektir. Mantığınızı buna göre değiştirmelisiniz. Ayrıca bu fonksiyon her satır için de çalışacaktır, bu yüzden geri dönüşü bu satırın görünür geri dönüşünün yanlış olacağını kaldıracaktır. Eğer sütun değerinin bu ya da böyle olması durumunda bir mantık yazmanız gerekir. Bu .. birden fazla seçim dayalı ve daha sonra –