2016-11-03 6 views
0

Ich habe diese fünf Felder ID, Name, Adresse, Telefon und Fax auf der Datentabelle angezeigt. Ich verwende Column Visibility Feature und standardmäßig zeige ich die ersten vier Spalten an. Angenommen, ich mache die Faxspalte Sichtbar und die Telefonspalte unsichtbar. Jetzt, wenn ich die Seite aktualisiere, sehe ich wieder dieselben vier Spalten. Meine Frage ist, können wir diese Sichtbarkeit/Unsichtbarkeit beibehalten?Datatables Spalte Sichtbarkeit Unsichtbarkeit beibehalten

Danke.

Antwort

0

Aktualisieren Sie die Seite? Meinst du die Datenseite neu zeichnen? (z. B. durch Klicken auf eine Spaltenüberschrift zum Sortieren oder Klicken auf "Weiter" in der Datentabelle?)

Wenn ja, verwenden Sie Javascript/Jquery, um die Sichtbarkeit Ihrer Elemente zu ändern?

Dies funktioniert zunächst - aber weil Databases nicht wissen, dass jquery das Element geändert hat, wenn es die Tabelle neu zeichnet (in einer neuen Reihenfolge oder auf einer neuen Seite oder was auch immer), werden Ihre Änderungen zurückgesetzt in den Zustand, in dem es die Tabelle versteht.

Damit Ihre Änderungen über Neuzeichnungen beibehalten werden, müssen Sie datatables api verwenden, damit die Datenquelle weiß, was Sie tun. wie folgt aus:

var mytable= $('#mytable').DataTable(); 
mytable.column(0).visible(false); 

jedoch Wenn Sie diese Änderungen im Browser zwischen Auffrischungen der Webseite bestehen bleiben wollen, dann müssen Sie Sitzungen einrichten, oder speichern diese Konfigurationen in einer Datenbank.

jedes Mal, dann wird die Seite in angefordert wird, überprüfen Sie, dass die Daten, und Sie können dynamisch onload entscheiden, wie Ihr initialisieren Datentabelle:

$(document).ready(function() { 
    $('#example').dataTable({ 
    "aoColumnDefs": [ 
     { "bVisible": false, "aTargets": [ userHiddenColumn ] } 
    ] }); 
}); 
+0

die Seite aktualisieren bedeutet, auf eine andere Seite gehen und dann zu gleichen zurück Datatable-Seite. Dieser Prozess aktualisiert die Datentabelle. Ich dachte dasselbe, um die Spalten in der DB zu speichern. Irgendein Körper sonst mit einigen anderen Lösungen? –

+0

Damit die Tabelle den Status zwischen den Sitzungen/Besuchen des Benutzers speichert, müssen Sie die Konfigurationen in einer Datenbank speichern und die Tabelle dynamisch für jedes GET initialisieren. Es gibt viele Möglichkeiten, dies zu tun, aber es gibt keine wirklich alternativen Lösungen ... – Paul

+0

Wir brauchen keine Sitzung/Datenbank, um den Status zu speichern, da er bereits Teil von Datatables ist stateSave: true, Bitte Überprüfen Sie https://datatables.net/extensions/buttons/examples/column_visibility/stateSave.html –

Verwandte Themen