Angenommen, ich erhalte manchmal leere Daten vom Server. Ich möchte die Meldung Keine Daten gefunden in DataTables anzeigen. Wie ist das möglich?
Antworten:
Wenn Sie die Nachricht anpassen möchten, die in einer leeren Tabelle angezeigt wird, verwenden Sie Folgendes:
$('#example').dataTable( {
"oLanguage": {
"sEmptyTable": "My Custom Message On Empty Table"
}
} );
Seit Datatable 1.10 können Sie Folgendes tun:
$('#example').DataTable( {
"language": {
"emptyTable": "My Custom Message On Empty Table"
}
} );
Die vollständigen verfügbaren benutzerdefinierten Datentabellen für die Tabelle finden Sie unter der folgenden Linkreferenz / Option / Sprache
Spätere Versionen von dataTables
haben die folgenden language
Einstellungen (von hier übernommen ):
"infoEmpty"
- Wird angezeigt, wenn die Tabelle keine Datensätze enthält"zeroRecords"
- Wird angezeigt, wenn keine Datensätze vorhanden sind, die der Filterung entsprechenz.B
$('#example').DataTable( {
"language": {
"infoEmpty": "No records available - Got it?",
}
});
Hinweis: Da die Eigenschaftsnamen keine Sonderzeichen enthalten, können Sie die Anführungszeichen entfernen:
$('#example').DataTable( {
language: {
infoEmpty: "No records available - Got it?",
}
});
Spät zum Spiel, aber Sie können auch eine Lokalisierungsdatei verwenden
DataTable stellt eine .json
lokalisierte Datei bereit , die den Schlüssel sEmptyTable
und die entsprechende lokalisierte Nachricht enthält.
Laden Sie zum Beispiel einfach die lokalisierte JSON-Datei über den obigen Link herunter und initialisieren Sie diese Datatable
wie folgt:
$('#example').dataTable( {
"language": {
"url": "path/to/your/json/file.json"
}
});
IMHO, das ist viel sauberer, weil sich Ihr lokalisierter Inhalt in einer externen Datei befindet.
Diese Syntax funktioniert für DataTables 1.10.16 . Ich habe sie in früheren Versionen nicht getestet.
Ich fand dasselbe, aber zuletzt fand ich eine Antwort. Ich hoffe diese Antwort hilft dir so sehr.
Wenn Ihr Array leer ist, können Sie wie folgt ein leeres Array senden
if(!empty($result))
{
echo json_encode($result);
}
else
{
echo json_encode(array('data'=>''));
}
Vielen Dank
Wenn Sie serverseitige Daten zurückgeben, müssen Sie das Datenattribut angeben, auch wenn keine vorhanden sind. Es liest nicht das recordsTotal
oder, recordsFiltered
sondern hängt von der Anzahl der Datenobjekte ab
Dies ist nur eine schöne Idee. Auf diese Weise können Sie eine Klasse im Hauptteil hinzufügen und die Tabelle ausblenden / anzeigen, solange keine Daten in der Tabelle vorhanden sind . Das funktioniert perfekt für mich. Sie können eine benutzerdefinierte Fehlermeldung NO Record Found entwerfen, wenn die Tabelle keinen Datensatz enthält, Sie die Klasse "no-record" hinzufügen und wenn 1 oder mehr als ein Datensatz vorhanden ist, können Sie die Klasse entfernen und die Datentabelle anzeigen
Hier ist jQuery-Code.
$('#default_table').DataTable({
// your stuff here
"fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) {
if (aiDisplay.length > 0) {
$('body').removeClass('no-record');
}
else {
$('body').addClass('no-record');
}
}
});
Hier ist CSS
.no-record #default_table{display:none;}