Ajax kaynağından veri alan bir veri tabanım var, şu anda sütun 4'de azalan sırada sipariş ediliyor. Ancak, bir sütun olarak var olmayan tabloyu sipariş etmek istediğim bir dizi veriye sahibim. ve bugünün tarihine (sütun 4'te mevcut) Tablodaki tarihleri arasında bir karşılaştırma yapmak Moment.JS kullanırDatatables 1.10 Veri dizisi ile sıralama
oTable = $('#Table').DataTable({
"scrollX": true,
stateSave: false,
"processing": true,
"serverSide": false,
"ajax": "scripts/SSP_enquiry.php",
select: true,
colReorder: true,
"columnDefs": [
{
"visible": false,
"searchable": false,
"targets": [9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
},
{className: "word", "targets": [1]}
],
order: [4, 'desc'],
dom: '<"top">lrt<"bottom"pB><"clear">',
responsive: false,
buttons: [
'excel'
]
});
My fonksiyonu. Daha sonra farkı gün içinde dArray
adlı bir diziye iter.
Dizimde, tablodaki satırla ilgili olması gereken her değer için bir Dizin var.
Yani ne yapmak istiyorum dArray
function dateGet() {
var idx = oTable
.columns(4)
.data()
.eq(0);// Reduce the 2D array into a 1D array of data
//console.log(idx);
var dArray = [];
var today = moment();
$.each(idx, function(index,value) {
var tempDate = moment(value);
var deadlineDiff = tempDate.diff(today, 'days');
dArray.push(index,deadlineDiff);
console.log(dArray);
})
}
yılında dArray
[0, 6]
[1, 0]
[2, -0]
[3, -0]
[4, -1]
[5, -6]
[6, -7]
[7, -7]
[8, -11]
[9, -12]
[10, -12]
[11, -12]
[12, -13]
GÜNCELLEME
bir örnek değerlerine dayalı akım tablosunu sıralamak endeksi ve değer kullanmaktırVarsayılan olarak 0 olan yeni bir sütun ekledim, bu yüzden şimdi değerleri ba son tarih farkları dizisi üzerinde sed. İlgili satırın kimliğini eşleştirmeleri gerekir.
result[j][0]
result[j][1]
böyle
function dateGet() {
var dArray = [];
var today = moment();
var ID = oTable
.columns(0)
.data()
.eq(0);
var dDate = oTable
.columns(4)
.data()
.eq(0);// Reduce the 2D array into a 1D array of data
$.each(dDate, function (index, value) {
var tempDate = moment(value);
var deadlineDiff = Math.abs(tempDate.diff(today, 'days'));
dArray.push(deadlineDiff);
});
var result = $.map(ID, function (el, idx) {
return [[el, dArray[idx]]];
});
oTable.rows().every(function (rowIdx, tableLoop, rowLoop) {
var data = this.data();
for (var j = 0; j < result.length; j++) {
if (data[0] == result[j][0]) {
//in here the ID in the table and the ID in the array
// match, I need to iterate through rows and assign the value
//in the array to column 28's cell
}
}
});
}
Tıpkı bir öneri olarak ... 4. sütun için render işlevinde, tarihinizi içeren bir açıklığa bir veri niteliği ekleyebilir misiniz? Ve sonra tarihin kendisinden ziyade sipariş ver? – annoyingmouse
hmmm öneriyoruz, dizideki değerleri karşılık gelen satır/sütun dizinine ekleyin ve ardından veri niteliğini sıralayın. Yapabileceğim bir fikrim yok, bir örneğiniz var mı? –
@annoyingmouse haklıdır, daha da iyisi - 'render()' yöntemi bir 'sort' veya' filter' value istediğinde dizi değerini döndürür. – davidkonrad