Angenommen, ich erhalte manchmal leere Daten vom Server. Ich möchte die Meldung Keine Daten gefunden in DataTables anzeigen. Wie ist das möglich?
jquery
json
asp.net-mvc
datatables
Naruto
quelle
quelle
Spätere Versionen von
dataTables
haben die folgendenlanguage
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?", } });
quelle
infoEmpty
ist eigentlich für den Info-Teil der Tabelle. siehe diese jsfiddleSpät zum Spiel, aber Sie können auch eine Lokalisierungsdatei verwenden
DataTable stellt eine
.json
lokalisierte Datei bereit , die den SchlüsselsEmptyTable
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.
quelle
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
quelle
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 abquelle
Standardmäßig kümmert sich die Rasteransicht, übergeben Sie einfach einen leeren Datensatz.
quelle
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;}
und hier ist offizieller Link .
quelle