Tengo un problema para controlar el ancho de una tabla usando el complemento jQuery DataTables. Se supone que la mesa tiene el 100% del ancho del contenedor, pero termina siendo un ancho arbitrario, bastante menor que el ancho del contenedor.
Sugerencias apreciadas
La declaración de la tabla se ve así
<table id="querytableDatasets" class="display" cellspacing="0"
cellpadding="3" width="100%">
Y el javascript
jQuery('#tab-datasets').load('/cgi-bin/qryDatasets', '', function (){
jQuery('#querytableDatasets').dataTable({
"bPaginate": false,
"bInfo": false,
"bFilter": false
});
}); `
Al inspeccionar el HTML en Firebug, verá esto (tenga en cuenta el estilo agregado = "ancho: 0px;")
<table id="querytableDatasets" class="display" cellspacing="0"
cellpadding="3" width="100%" style="width: 0px;">
Mirando en Firebug los estilos, el estilo table.display ha sido anulado. No puedo ver de donde viene esto
element.style {
width:0;}
-- dataTables.css (line 84
table.display {
margin:0 auto;
width:100%;
}
jquery
datatables
jquery-datatables
John Mac
fuente
fuente
max-width
propiedad configurada. Aparentemente a IE8 no le gusta demasiado esa propiedad y la ignoró en relación con las tablas de datos, a pesar de que la imagen tenía el tamaño correcto en la pantalla. Cambiarlo parawidth
solucionar el problema.Respuestas:
El problema se debe a que dataTable debe calcular su ancho, pero cuando se usa dentro de una pestaña, no es visible, por lo que no se pueden calcular los anchos. La solución es llamar a 'fnAdjustColumnSizing' cuando se muestra la pestaña.
Preámbulo
Código de inicialización
Vea esto para más información.
fuente
window.resize
, mira un ejemplo legacy.datatables.net/ref#fnAdjustColumnSizingQuerrá modificar dos variables cuando inicialice las tablas de datos:
bAutoWidth
yaoColumns.sWidth
Suponiendo que tiene 4 columnas con anchos de 50px, 100, 120px y 30px, haría:
Puede encontrar más información sobre la inicialización de tablas de datos en http://datatables.net/usage
Esté atento a la interacción entre esta configuración de widhts y el CSS que está aplicando. Puede comentar su CSS existente antes de intentar esto para ver qué tan cerca se acerca.
fuente
fuente
Bueno, no estoy familiarizado con ese complemento, pero ¿podrías restablecer el estilo después de agregar la tabla de datos? Algo como
después de la llamada .dataTable?
fuente
He tenido numerosos problemas con los anchos de columna de las tablas de datos. La solución mágica para mí fue incluir la línea
este CSS va con el CSS general de la tabla. Por ejemplo, si ha declarado las tablas de datos como las siguientes:
entonces la línea css mágica iría en la clase Loadtable
}
fuente
La solución TokenMacGuys funciona mejor porque es el resultado de un error en jQdataTable. Lo que sucede es que si usa $ ('# sometabe'). DataTable (). FnDestroy () el ancho de la tabla se establece en 100px en lugar de 100%. Aquí hay una solución rápida:
fuente
Agregue esta clase css a su página, solucionará el problema:
fuente
Establecer anchos explícitamente usando
sWidth
para cada columna YbAutoWidth: false
en ladataTable
inicialización resolvió mi problema (similar). Me encanta la pila desbordante.fuente
Tienes que dejar al menos un campo sin campo fijo, por ejemplo:
Puede cambiar todo, pero dejar solo uno como nulo, para que se pueda estirar. Si pones anchos en TODOS, no funcionará. ¡Espero haber ayudado a alguien hoy!
fuente
Esto funcionó bien para ajustar todo el ancho de la mesa. ¡Gracias @Peter Drinnan!
fuente
Como en la tabla de datos 10.1, esto es sencillo. Simplemente coloque el atributo de ancho en su tabla en HTML. es decir, ancho = "100%", esto anulará todos los estilos CSS establecidos por DT.
Vea esto http://www.datatables.net/examples/basic_init/flexible_width.html
fuente
Ninguna de las soluciones aquí funcionó para mí. Incluso el ejemplo en la página de inicio de las tablas de datos no funcionó, por lo tanto, la inicialización de la tabla de datos en la opción mostrar.
Encontré una solución al problema. El truco consiste en usar la opción de activación para las pestañas y llamar a fnAdjustColumnSizing () en la tabla visible :
fuente
Solo para decir que tuve exactamente el mismo problema que usted, aunque solo estaba aplicando JQuery a una tabla normal sin Ajax. Por alguna razón, Firefox no expande la tabla después de revelarla. Solucioné el problema colocando la tabla dentro de un DIV y aplicando los efectos al DIV en su lugar.
fuente
¿Estás haciendo esto en el evento listo?
Es muy probable que el tamaño dependa de que el documento esté completamente cargado.
fuente
Para cualquiera que tenga problemas para ajustar el ancho de la tabla / celda usando el complemento de encabezado fijo:
Datatables se basa en las etiquetas thead para los parámetros de ancho de columna. Esto se debe a que es realmente el único html nativo, ya que la mayor parte del html interno de la tabla se genera automáticamente.
Sin embargo, lo que sucede es que parte de su celda puede ser más grande que el ancho almacenado dentro de las celdas de la cabeza.
Es decir, si su tabla tiene muchas columnas (tabla ancha) y sus filas tienen muchos datos, entonces llamar a "sWidth": para cambiar el tamaño de celda td no funcionará correctamente porque las filas secundarias cambian automáticamente el tamaño de los td según el desbordamiento content y esto sucede después de que la tabla se haya inicializado y pasado sus parámetros de inicio.
El thead original "sWidth": los parámetros se anulan (encogen) porque las tablas de datos piensan que su tabla todavía tiene su ancho predeterminado de% 100 - no reconoce que algunas celdas están desbordadas.
Para solucionar esto, descubrí el ancho de desbordamiento y lo tomé en cuenta cambiando el tamaño de la tabla en consecuencia después de que se haya inicializado; mientras estamos en eso, podemos iniciar nuestro encabezado fijo al mismo tiempo:
fuente
cree su Fixedheader dentro del "éxito" de su llamada ajax, no tendrá ningún problema de alineación en el encabezado y las filas.
fuente
Espero que esto ayude a alguien que todavía está luchando.
No guarde su mesa dentro de ningún recipiente. Haga que el envoltorio de la tabla sea su contenedor después de que la tabla esté renderizada. Sé que esto podría no ser válido en lugares donde tiene algo más junto con la tabla, pero siempre puede agregar ese contenido.
Para mí, este problema surge si tiene una barra lateral y un contenedor que en realidad es un desplazamiento de esa barra lateral.
(Agregué un panel de panel predeterminado)
Y su clase:
fuente
encuentre otro enlace útil sobre este problema y resolvió mi problema.
Tabla de ancho de fuerza de Datatables
fuente
Me encontré con un problema similar al tener un div envuelto alrededor de la mesa.
Agregar posición: relativo lo arregló para mí.
fuente
Tuve un problema similar en el que el contenido de la tabla era más grande que el encabezado y el pie de página de la tabla. Agregar un div alrededor de la mesa y configurar x-overflow parece haber solucionado este problema:
fuente
Asegúrese de que todos los demás parámetros anteriores a bAutoWidth & aoColumns se hayan ingresado correctamente. Cualquier parámetro incorrecto anterior romperá esta funcionalidad.
fuente
Tuve un problema similar y descubrí que el texto en las columnas no se rompe y el uso de este código css resolvió el problema
fuente
Esta es mi forma de hacerlo ..
fuente
Hoy encuentro el mismo problema.
Usé una forma complicada de resolverlo.
Mi código de la siguiente manera.
fuente
Compruebe también esta solución. esto resolvió mi problema de ancho de columna de DataTable fácilmente
JQuery DataTables 1.10.20 presenta un
columns.adjust()
método que soluciona el problema de la pestaña de alternancia de BootstrapConsulte la documentación: Pestañas de desplazamiento y Bootstrap
fuente
Esto funciona bien.
fuente