2010-05-16 81 views
5

Tengo una tabla de datos que está inicialmente vacía y se llena después de una llamada Javascript en particular. Después de insertar los datos en la tabla, me gustaría centrar todos los datos en una de las columnas. He intentado especificar esto en la etapa de inicialización de esta manera:jQuery Datatable Pregunta: Centrado de datos de la columna después de la inserción de datos

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

Los datos de la tercera columna no se centró después de las inserciones eran completas. He intentado modificar aoColumns después de las inserciones y volver a dibujar la tabla así:

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

Esto tampoco funcionó. Entonces, mi pregunta es, ¿cómo debo hacer para decirle a la tabla de datos que centre los datos en la tercera columna?

Gracias de antemano por sus sugerencias.

Chris

+0

¿Por qué no puedes simplemente usar CSS? – Mottie

+0

Recomendaría usar Firebug para inspeccionar las celdas de la tabla y descubrir qué estilos se están aplicando. Quizás algo está siendo anulado? – Favio

+0

@fudgey, intenté usar CSS inicialmente también, pero fue en vano. Cada vez que agrego una fila, uso una llamada dTable.fnAddRow (r) para agregar los datos en la matriz r. Hurgando con Firebug como Favio sugirió, ves que el cuerpo de la tabla tiene una estructura particular configurada por el plug-in datatable para admitir varias acciones. Probablemente podría usar CSS para solucionar el problema dado lo que he visto de la estructura, pero eso está lejos de ser elegante. Tiene que haber una mejor manera. – Chris

Respuesta

2

Si he entendido bien, su mesa recibe múltiples filas con varias columnas de datos AJAX. La tercera columna debe estar centrada. Trate de hacer esto:

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

alternativa, si no les gusta usar los atributos, se puede establecer el atributo de estilo utilizando .attr(attributeName, value) o el uso de .css(propertyName, value), o añadir una clase con .addClass().

+0

Gracias Bradley. Hice algo similar, volviendo a JQuery para rellenar la tabla antes de crear la tabla de datos. De esta forma podría agregar una clase para las entradas en la tercera columna y centrarlas en CSS. Ahora estoy teniendo problemas para actualizar la tabla de datos una vez creada. Se necesita más investigación. – Chris

Cuestiones relacionadas