2010-06-22 44 views
32

Desarrollé la interfaz AJAX con jQuery y jqGrid.jqGrid barra de desplazamiento horizontal

¿Cómo puedo eliminar la barra de desplazamiento horizontal de mi tabla jqGrid?

http://dskarataev.ru/jqgrid.png

Si fijo autowidth: true, entonces consigo ancho de table width = suma de las columnas, pero necesito el ancho de la tabla = anchura del elemento padre con id devuelto por la función getSelectedTabHref()

así que hago función:

$(window).bind('resize', function() { 
    $('#tasks').setGridWidth($(getSelectedTabHref()).width()); 
    $('#tasks').setGridHeight($(window).height()-190); 
}).trigger('resize'); 

y aquí es cómo creo mesa jqGrid:

$('#tasks').jqGrid({ 
    datatype: 'local', 
    colNames:[labels['tasksNum'],labels['tasksAdded']+"/"+labels['tasksAccepted'],labels['tasksOperator'],labels['tasksClient'],labels['tasksManager'],labels['tasksDesc']], 
    colModel :[ 
    {name:'taskId', index:'taskId', width:1, align:'right'}, 
    {name:'taskAdded', index:'taskAdded', width:3}, 
    {name:'taskOperator', index:'taskOperator', width:4}, 
    {name:'taskClient', index:'taskClient', width:7}, 
    {name:'taskManager', index:'taskManager', width:4}, 
    {name:'taskDesc', index:'taskDesc', width:8}] 
}); 

Respuesta

1

setGridWidth definitivamente cambiar el tamaño de la rejilla a la de la nueva anchura dada, pero asegúrese de que lo utilice con ANCHO = true. setGridWidth puede tener problemas con IE 7 más o menos.

Algunas soluciones de trabajo discutido aquí (en caso de que si aún hay de encontrar una solución),

Resize jqGrid when browser is resized?

http://www.trirand.com/blog/?page_id=393/discussion/browser-resize-how-to-resize-jqgrid/

---- ---- edad

Hay hay un par de opciones que puede probar,

De http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

"autowidth" : true  

o

"shrinkToFit": false 

correos de otra manera su código jqGrid, pasemos a analizar.

+0

I actualizado la pregunta. Revisión, por favor. – dskarataev

5

Hay algunas situaciones en las que jqGrid calcula el ancho de la cuadrícula incorrecto. Puede intentar aumentar el parámetro cellLayout (consulte http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options). Esto puede ser necesario si cambia algo de CSS de jqGrid.

En algunas otras situaciones puede corregir el ancho con respecto a la función fixGridWidth o fixGridSize que he descrito en Correctly calling setGridWidth on a jqGrid inside a jQueryUI Dialog. No olvide, que debe usarlo dentro de loadComplete.

+0

gracias, lo comprobaré. – dskarataev

72

ajusté ui.grid.css porque no necesitaba una barra de desplazamiento horizontal. Hice esto:

.ui-jqgrid .ui-jqgrid-bdiv { 
    position: relative; 
    margin: 0em; 
    padding:0; 
    /*overflow: auto;*/ 
    overflow-x:hidden; 
    overflow-y:auto; 
    text-align:left; 
} 

la comentó fue como fue, acabo de utilizar desbordamiento-x para ocultar la barra de desplazamiento horizontal y ahora todo está bien conmigo.

+0

Funciona muy bien para mí, gracias! – Matthieu

+0

Genial, gracias !!! –

+0

¿por qué esta pregunta no es primero? tiene 26 votos, ¡y funciona perfectamente! ¡gracias! – Paschalis

4

fijar una explícita width en la parrilla y uso

autowidth: false, 
shrinkToFit: true 
+0

Esta solución no funciona en todas las situaciones. Cambiar el CSS hace el truco. – Matthieu

0

i utilizado jqGrid método de API setGridHeight. me funciona bien en IE 8 también.

var gr = jq('#grid'); 
gr.setGridHeight(350,true); 

pongo estas líneas en la llamada a la función 'loadComplete'.

1

un poco tarde, pero podría ser útil para alguien

, debe ajustar la altura de la mesa sólo en número, sin 'px' al final

0

Aplicar AppearanceSettingsShrinkToFit="False" y AutoWidth="true" a su jqGrid.

1

Aquí vamos width : '1083', shrinkToFit:false,

Cuando establecimos lo anterior tenemos que asegurarnos de que nuestra ui.jqgird.css se establecen de la siguiente manera

.ui-jqgrid .ui-jqgrid-bdiv { height: auto; margin: 0em; max-height: 250px; overflow-x: auto; overflow-y: auto; padding: 0px; position: relative; text-align: left; } 
0

Su simple, el uso en el jqGrid shrinkToFit: false

Cuestiones relacionadas