Ich verwende datatables, um mehrere Informationen und Schaltfläche anzuzeigen. Dies ist die JavaScript verwendet, um die DatentabellenDatatables aktualisieren einzelne Spalte alle 5 Sekunden
if (! $.fn.DataTable.isDataTable('#datatableTable')) {
datatableTable = $('#datatableTable').DataTable({
responsive: true,
columnDefs: [
{ "width": "25%", "targets": 4},
{
targets: [4,5,6],
//set priority to column, so when resize the browser window this botton stay on the screen because have max priority
visible: (document.getElementById('role').value == '[ROLE_ADMIN]' || document.getElementById('role').value == '[ROLE_FLEET_ENG]'
|| document.getElementById('role').value == '[ROLE_SUPPLIER]'),
responsivePriority: 1,
orderable: false,
searchable: false,
},
...
],
//fix problem with responsive table
"autoWidth": false,
"ajax":{
"url": "datatable/" + $("#selectedCar").val(),
"dataSrc": ...
return json.result.data;
},
"error": function (xhr, error, thrown) {
window.location.href = "/DART/500";
}
},
"columns": [
....
{data:null, render: function (data, type, row) {
var datId="deleteDat"+row.idAcquisition;
if (row.datUploaded){
return '<button type="button" class="btn btn-danger" name="deleteDat" target="'+row.idAcquisition+'" id="'+datId+'" data-toggle="modal"'
+'data-target="#deleteDatModal">Delete</button>'
}else
return '<button type="button" class="btn btn-danger" name="deleteDat" target="'+row.idAcquisition+'" id="'+datId+'" data-toggle="modal"'
+'data-target="#deleteDatModal" disabled>Delete</button>'
},
],
"fnDrawCallback": function(data, type, row, meta) {
//Initialize checkbox for enable/disable user
$("[name='my-checkbox']").bootstrapSwitch({size: "small", onColor:"success", offColor:"danger"});
},
});
}
else {
datatableTable.ajax.url("datatable/" + $("#selectedCar").val()).load();
}
Spalte 5 (beginnend bei 0) hat Tasten zu initialisieren, kann jede Taste hängt von dem datUploaded
Booleschen Wert gesperrt oder freigegeben werden. Diese Variable ändert sich, wenn der Benutzer die Datei lädt, aber dieser Wert ist nach der asynchronen Aufgabe eingestellt, so dass ich in meinem Javascript nicht weiß, wann diese Aufgabe endet.
Ich dachte, alle 5 Sekunden nur diese Spalte zu aktualisieren, aber wie kann ich es tun? Ich finde datatableTable.column(5).cells().invalidate().render()
, aber ich erhalte einen Fehler (unknow Parameter "isShow" für Zeile 0) und Update funktioniert nicht. Können Sie mir helfen? Danke
Könnten Sie bitte Ihren Beispielcode zum eigentlichen problematischen Teil Streifen nach unten (s) – fast
Nun ist besser? Ich denke, das Problem ist sowohl "FnDrawCallback" und Anweisungen zum Aktualisieren der Spalte – luca
Sie sagen "nach async Aufgabe eingestellt, so dass ich nicht in meinem Javascript, wenn diese Aufgabe zu Ende wissen", aber Sie können .load() einen Rückruf an ausgeführt werden, nachdem der Ajax-Anruf beendet wurde, so können Sie tatsächlich wissen, wenn die Aufgabe über – lud1977