2017-06-30 3 views
0

Ich verwende Jquery Datentabelle und binden die Large Unsortierte Objektdaten an Datentabelle. Mein Code ist unten:Filtern und binden Sie die Daten an die Datatable

var ExpenceDataTableElement = $('#ExpenceDataTable').DataTable({ 
data: Data, 
pageLength: 10, 
"bSort": false, 
"autoWidth": false, 
columns: [{ 
     "className":"clsAction", 
     "data": "TimesheetUID", 
     "title": "Action", 
     "render": (data, type, row) => '<input class="checkbox" type="checkbox" />', 
     "width": "4%", 
     "visible":true 
}, 
{ 
     "className":"clsPeriodName", 
     "data": "PeriodName", 
     "title": "Timesheet Name", 
     "visible":true 
}, 
{ 
     "className":"clsTSPeriodStatus", 
     "data": "Open", 
     "title": "Timesheet Period <br> Status", 
     "render":function(data,type,row){ if(data == 1){return " Open"}else{return " close"}}, 
     "width": "10%", 
     "visible":true 
} 
], 
"oLanguage": { 
     "sEmptyTable": "No Records found." 
} 
}); 

Die Daten enthalten mehr als 15 Tausende von Datensätzen, es enthält die Flagge wie ‚Open‘ OR ‚Schließen‘. Derzeit verwende ich die for-Schleife, um die Daten zu sortieren und an die Datentabelle zu binden. Bedeutet das, wenn die Daten 15 Tausend Datensätze haben und sie 7000 "offene" Flag-Datensätze enthalten, dauert es lange, bis die Daten & an Datatable gebunden werden. Daher gibt es eine Möglichkeit, die Bedingung in 'Spalten:' zu überprüfen, wenn Flag nicht 'Offen' ist, dann weiter zur nächsten Iteration ??

Antwort

0

Sie könnten die Filtermethode verwenden, um zuerst die Objekte mit dem Status 'offen' im Array zu filtern.

someObject.columns.filter(x => x.data == 'open') 

Dadurch werden nur diejenigen herausgefiltert, die das Flag 'offen' haben. Sie können es in eine Variable für die weitere Arbeit zwischenspeichern.

+0

** @ Ilya Kushlianski **, Zur Zeit mache ich dasselbe mit der for-Schleife, um die Daten zu sortieren und zu binden. Ich frage, ist das anders? Zum Zeitpunkt der Datenbindung prüfe ich den Zustand –

Verwandte Themen