2010-05-16 17 views
5

Mam tabelę danych, która jest początkowo pusta i jest zapełniana po konkretnym wywołaniu JavaScript. Po wstawieniu danych do tabeli chciałbym wyśrodkować wszystkie dane w jednej z kolumn. Próbowałem określając to w kroku inicjalizacji w następujący sposób:Pytanie JQuery Datatable: Centrowanie danych kolumn po wstawieniu danych

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

Dane w trzeciej kolumnie nie były wyśrodkowane po zakończeniu wstawiania. Próbowałem modyfikowania aoColumns po wstawkami i odświeżanie tabeli, a także:

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

to nie działało. Moje pytanie brzmi po prostu, jak powinienem powiedzieć tabeli danych, aby wyśrodkować dane w trzeciej kolumnie?

Z góry dziękujemy za sugestie.

Chris

+0

Dlaczego nie możesz po prostu użyć CSS? – Mottie

+0

Polecam użycie Firebug do sprawdzenia komórek tabeli, aby dowiedzieć się, jakie style są stosowane. Być może coś jest przesłonięte? – Favio

+0

@Fudgey, próbowałem również używać CSS, ale bezskutecznie. Za każdym razem, gdy dodaję wiersz, używam wywołania dTable.fnAddRow (r), aby dodać dane w tablicy r. Poruszając się z Firebugem, jak sugerował Favio, widzisz, że korpus tabeli ma określoną strukturę skonfigurowaną przez datatable plug-in do obsługi różnych akcji. Prawdopodobnie mógłbym użyć CSS, aby naprawić problem, biorąc pod uwagę to, co widziałem w strukturze, ale to daleki od elegancji. Musi być lepszy sposób. – Chris

Odpowiedz

2

Jeśli rozumiem zostanie poprawnie, tabela dostaje wiele wierszy z wielu kolumn z danymi AJAX. Trzecia kolumna powinna być wyśrodkowana. Spróbuj tego:

$.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. 
    }); 
    } 
}); 

Ewentualnie, jeśli nie lubią za pomocą atrybutów, można ustawić atrybut stylu, przy użyciu .attr(attributeName, value) lub korzystając .css(propertyName, value) lub dodać klasę z .addClass().

+0

Dzięki Bradley. Zrobiłem coś podobnego, powracając do JQuery, aby wypełnić tabelę przed utworzeniem datatable. W ten sposób mógłbym dodać klasę do wpisów w trzeciej kolumnie i wyśrodkować je za pomocą CSS. Teraz mam problemy z aktualizowaniem datatable po jego utworzeniu. Potrzeba więcej badań. – Chris

Powiązane problemy