it-swarm.com.de

So zeigen Sie leere Datennachrichten in Datatables an

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

65
Naruto

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"
    }
} );

Für die complete available datatables benutzerdefinierten Nachrichten für die Tabelle sehen Sie den folgenden Link reference/option/language

116
Daniel

Spätere Versionen von dataTables haben die folgenden language-Einstellungen (entnommen aus hier ):

  • "infoEmpty" - wird angezeigt, wenn keine Datensätze in der Tabelle vorhanden sind
  • "zeroRecords" - wird angezeigt, wenn keine der Filterung entsprechenden Datensätze vorhanden sind

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?",
    }
});
8
Gone Coding

Standardmäßig sorgt die Rasteransicht dafür, dass nur leere Daten übergeben werden.

1
Naruto

Wenn Sie serverseitige Daten zurückgeben, müssen Sie das Datenattribut angeben, auch wenn es noch keine Daten gibt. Es liest nicht die Variable recordsTotal oder recordsFiltered, sondern stützt sich auf die Anzahl der Datenobjekte

1
Antony

Spät im Spiel, aber Sie können auch eine localization-Datei verwenden

DataTable stellt eine .json-lokalisierte Datei bereit, die den Schlüssel sEmptyTable und die entsprechende lokalisierte Nachricht enthält.

Laden Sie beispielsweise die lokalisierte Json-Datei über den obigen link herunter und initialisieren Sie dann Ihre Datatable wie folgt:

$('#example').dataTable( {
    "language": {
        "url": "path/to/your/json/file.json"
    }
});

IMHO, das ist viel sauberer, da sich Ihre lokalisierten Inhalte in einer externen Datei befinden.

Diese Syntax funktioniert für DataTables 1.10.16, ich habe die früheren Versionen nicht getestet.

0
AlexB

Dies ist nur eine nette Idee. Das bedeutet, Sie können eine Klasse in body hinzufügen und eine Tabelle ein-/ausblenden, solange keine Daten in der Tabelle sind . Das funktioniert perfekt für mich. Sie können benutzerdefinierte NO Record Found-Fehlermeldungen entwerfen, wenn die Tabelle keinen Datensatz enthält, Sie die Klasse "no-record" hinzufügen können und wenn 1 vorhanden ist Bei mehr als einem Datensatz können Sie die Klasse entfernen und die Daten anzeigen

Hier ist der 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 der offizielle Link .

0
Shurvir Mori