2010-05-16 8 views
5

Ho una tabella dati che è inizialmente vuota e viene popolata dopo una particolare chiamata Javascript. Dopo che i dati sono stati inseriti nella tabella, vorrei centrare tutti i dati in una delle colonne. Ho provato specificare questo nella fase di inizializzazione in questo modo:Domanda Jable Datable: centrare i dati della colonna dopo l'inserimento dei dati

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

I dati nella terza colonna non ha centrato dopo gli inserimenti erano completi. Ho provato modificando aoColumns dopo le inserzioni e ridisegnare la tabella così:

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

Questo non ha funzionato neanche. Quindi la mia domanda è semplicemente come dovrei andare a dire alla tabella dei dati per centrare i dati nella terza colonna?

Grazie in anticipo per i vostri suggerimenti.

Chris

+0

Perché non puoi usare solo i CSS? – Mottie

+0

Si consiglia di utilizzare Firebug per ispezionare le celle della tabella per scoprire quali stili vengono applicati. Forse qualcosa viene sovrascritto? – Favio

+0

@fudgey, ho provato a usare inizialmente anche i CSS, ma senza risultati. Ogni volta che aggiungo una riga, sto utilizzando una chiamata dTable.fnAddRow (r) per aggiungere i dati nell'array r. Giocando con Firebug come suggeriva Favio, si vede che il corpo della tabella ha una particolare struttura creata dal plug-in datatable per supportare varie azioni. Probabilmente potrei usare i CSS per risolvere il problema dato quello che ho visto della struttura, ma questo è tutt'altro che elegante. Deve esserci un modo migliore. – Chris

risposta

2

Se ho capito bene, la vostra tavola diventa più righe con più colonne di dati AJAX. La terza colonna dovrebbe essere centrata. Prova questo:

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

In alternativa, se non vi piace usando gli attributi, è possibile impostare l'attributo di stile utilizzando .attr(attributeName, value) o utilizzando .css(propertyName, value), o aggiungere una classe con .addClass().

+0

Grazie Bradley. Ho fatto qualcosa di simile, tornando a JQuery per popolare la tabella prima di creare il datatable. In questo modo potrei aggiungere una classe per le voci nella terza colonna e centrarle con i CSS. Ora ho problemi con l'aggiornamento del datatable dopo che è stato creato. Sono necessarie ulteriori indagini. – Chris

Problemi correlati