2010-05-16 3 views
5

Ich habe eine Datentabelle, die anfänglich leer ist und nach einem bestimmten JavaScript-Aufruf gefüllt wird. Nachdem die Daten in die Tabelle eingefügt wurden, möchte ich alle Daten in einer der Spalten zentrieren. Ich habe versucht, auf diese Weise das bei der Initialisierung Schritt festgelegt wird:JQuery Datatable Frage: Zentrieren von Spaltendaten nach dem Einfügen von Daten

dTable = $('#dt').datatable({ 'aoColumns': [ null, null, { "sClass" : "center" }] }); 

Die Daten in der dritten Spalte wurde nicht zentriert, nachdem die Einfügungen abgeschlossen waren. Ich habe versucht, aoColumns nach den Einfügungen und Nachziehen der Tabelle als auch modifiziert:

dTable.fnSettings().aoColumns[2].sClass = "center"; 
dTable.fnDraw(); 

Dies hat nicht funktioniert entweder. Also meine Frage ist einfach, wie ich gehen soll, um die Datentabelle zu zentrieren, um die Daten in der dritten Spalte zu zentrieren?

Vielen Dank im Voraus für Ihre Vorschläge.

Chris

+0

Warum können Sie nicht einfach CSS verwenden? – Mottie

+0

Ich würde Firebug empfehlen, um die Tabellenzellen zu untersuchen, um herauszufinden, welche Stile angewendet werden. Vielleicht wird etwas außer Kraft gesetzt? – Favio

+0

@fudgey, habe ich anfangs auch versucht mit CSS, aber ohne Erfolg. Jedes Mal, wenn ich eine Zeile hinzufüge, verwende ich einen Aufruf von dTable.fnAddRow (r), um die Daten im Array r hinzuzufügen. Wie Favio vorgeschlagen hat, sehen Sie, dass der Tabellenkörper eine bestimmte Struktur aufweist, die vom Datatable-Plug-In zur Unterstützung verschiedener Aktionen eingerichtet wurde. Ich könnte wahrscheinlich CSS verwenden, um das Problem zu beheben, das ich von der Struktur kenne, aber das ist alles andere als elegant. Es muss einen besseren Weg geben. – Chris

Antwort

2

Wenn ich Sie richtig verstehe, Ihre Tabelle mehrere Zeilen mit mehreren Spalten von AJAX Daten erhält. Die dritte Spalte sollte zentriert sein. Probieren Sie dies aus:

$.ajax({ 
    url: 'ajax/test.html', 
    success: function(data) { //after AJAX completes 
    //fill the table. 
    $('#dt').children('tr').each(function(){ //for each row 
     $(this).children('td').eq(2).attr('align', 'center'); //center the third column. 
    }); 
    } 
}); 

Alternativ, wenn Sie nicht wie die Attribute verwenden, können Sie das Stil-Attribut .attr(attributeName, value) mit einstellen könnten oder mit .css(propertyName, value) oder einer Klasse hinzufügen, mit .addClass().

+0

Danke Bradley. Ich habe etwas Ähnliches gemacht und zu JQuery zurückgekehrt, um die Tabelle vor dem Erstellen der Datentabelle zu füllen. Auf diese Weise konnte ich eine Klasse für die Einträge in der dritten Spalte hinzufügen und sie mit CSS zentrieren. Jetzt habe ich Probleme, die Datentabelle nach ihrer Erstellung zu aktualisieren. Mehr Untersuchung benötigt. – Chris

Verwandte Themen