So zeigen Sie leere Datennachrichten in Datatables an

73

Angenommen, ich erhalte manchmal leere Daten vom Server. Ich möchte die Meldung Keine Daten gefunden in DataTables anzeigen. Wie ist das möglich?

Naruto
quelle

Antworten:

137

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

Daniel
quelle
Danke Daniel, hey, kannst du mir bitte bei dieser Frage helfen, dh stackoverflow.com/questions/14376692/… . Ich hoffe du hast eine Idee. es ist verwandt mit datatable
Naruto
Danke, Daniel, wie können wir eine benutzerdefinierte Nachricht in der Zelle für leere Datensatzattribute anzeigen?
Codemilan
2
@codemilan, sollten Sie für Column - Rendering google finden Sie in diesem datatables.net/examples/advanced_init/column_render.html , Blick auf die js - Code, der die erste Spalte macht, in Ihrem Fall , dass Sie einen Scheck für leere Spalte hinzufügen und machen , was auch immer Sie wollen für diese Zelle
Daniel
@ Daniel pls überprüfen Sie dies. Vielen Dank stackoverflow.com/questions/41431205/…
Sanduni Di
13

Spätere Versionen von dataTableshaben die folgenden languageEinstellungen (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 entsprechen

z.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?",
    }
});
Codierung weg
quelle
1
infoEmptyist eigentlich für den Info-Teil der Tabelle. siehe diese jsfiddle
Xiao
3

Spät zum Spiel, aber Sie können auch eine Lokalisierungsdatei verwenden

DataTable stellt eine .jsonlokalisierte Datei bereit , die den Schlüssel sEmptyTableund die entsprechende lokalisierte Nachricht enthält.

Laden Sie zum Beispiel einfach die lokalisierte JSON-Datei über den obigen Link herunter und initialisieren Sie diese Datatablewie 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.

AlexB
quelle
2

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

Sumit Kumar Gupta
quelle
1

Wenn Sie serverseitige Daten zurückgeben, müssen Sie das Datenattribut angeben, auch wenn keine vorhanden sind. Es liest nicht das recordsTotaloder, recordsFilteredsondern hängt von der Anzahl der Datenobjekte ab

Antonius
quelle
Mein Datensatz gibt data = null recordsTotal = 0 recordsFiltered = 0 zurück, aber zu diesem Zeitpunkt zeigt dataTable keine Nachricht an. Es bleibt bei der Verarbeitung hängen. Wie kann ich Standard anzeigen? Kein Ergebnis gefunden. Nachricht, wenn Daten = null. Bitte Rat
Sanduni Di
Sie können die Verarbeitung festlegen: false Ich glaube, als Parameter und Ihre zurückgegebenen Daten müssen einen 'Daten'-Schlüssel in der Ergebnismenge haben.
Antony
0

Standardmäßig kümmert sich die Rasteransicht, übergeben Sie einfach einen leeren Datensatz.

Naruto
quelle
0

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 .

Shurvir Mori
quelle