redibujar panel al maximizar navegador
hola, alguien sabe como puedo interceptar cuando la ventana del navegador se maximiza?. he intentado con el evento [b]bodyresize[/b] pero no me sirve. lo que pasa es que si la ventana del navegador no está maximizada cuando abro una de las pestañas de mi aplicación y luego maximizo la imagen queda recortada y tengo que cerrar esa pestaña y volver a abrirla.
cualquier luz será agradecida
segun el API sino se especifica alto y ancho, debe ser configurada dentro de un container. de hecho el gridpanel no tiene la propiedad "layout" pero gridpanel hereda de "panel", no? y panel si tiene esa propiedad por lo que esta implicita en gridpanel, o me equivoco?
Pienso que el problema es el iframe que no se redimenciona, te recomiendo y le pongas los siguientes estilos al iframe:
style="width:100%;height:100%"Prueba y nos comentas, saludos
usa un layout vbox dentro del panel que se cargara en el tab
var pnl = new Ext.Panel({ id:"panel-NivelJerarquico", frame:true, layout: 'vbox', layoutConfig: { align: 'stretch', pack: 'start' }, tbar:tbar, bbar:bbar, items:[grdNivelJerarquico] });los items del pnl en este caso el grid debe de llevar esto :
var grdNivelJerarquico = new Ext.grid.GridPanel({ flex: 2 //propiedad importante para que se ajuste a la resolucion del tamaño del explorador });espero te ayude saludos
los tabs los estoy creando asi:
Ext.ux.IFrameComponent = Ext.extend(Ext.BoxComponent,{ onRender: function (ct, position){ this.el = ct.createChild({tag:'iframe', id: 'iframe-'+ this.id, frameBorder:0, src:this.url}); }, listeners : { beforerender : function(c){ Ext.getCmp(c.id).getEl().mask('Cargando modulo....', 'x-mask-loading'); }, afterrender : function(c){ setTimeout("Ext.getCmp('"+c.id+"').getEl().unmask();",2000); } } });y cuando hace clic en el nodo del arbol crea el tab que a su vez carga el contenido del modulo asi:
menuIzq.addListener('dblclick', function(nodo, e){ if(nodo.id!='raiz'){ if (nodo.attributes.leaf=='1') { var contenido = Ext.getCmp('contenido'); var titulo = nodo.text; var id_tab = nodo.id; var open = !contenido.getItem(id_tab); if(open){ contenido.add({ title: titulo, id: id_tab, monitorResize : true, iconCls:nodo.attributes.iconCls, items: [ new Ext.ux.IFrameComponent({ id: nodo.id, url: 'app/'+nodo.attributes.iconCls+'.html', name: nodo.id}) ], loadScripts: true, autoScroll: true, closable: true, layout:'fit', layoutConfig :{ align : 'stretch' } }).show(); return; } tab = contenido.getItem(id_tab); tab.show(); } } });luego en el codigo del modulo que cargo tengo la grilla asi:
var grid = new Ext.grid.GridPanel({ renderTo: document.body, id : 'grilla', enableColumnHide : false, store: store, columns : [ new Ext.grid.RowNumberer(), new Ext.grid.CheckboxSelectionModel(), {header : 'id_interno', dataIndex : 'id_interno', hidden : true}, {header : 'Descripcion', dataIndex : 'descripcion', width : 200, sortable : true} ], border : false, stripeRows : true, tbar : tbBarra });si caonfiguro la grilla con autoHeight se ajusta bien pero se produce el mismo efecto anterior de recorte pero esta vez solo en la barra de botones
Puedes mostrar el código que corresponde a los tabs y el grid?? solo para ver como a quien le estas asignando el layout "fit".
Saludos.
efectivamente al cambiar el codigo y en vez de renderizar los elementos dentro de una ventana y hacerlo directamente en el body de la pagina se ajusta automaticamente el ancho, pero no asi el alto, de hecho solo puedo ver la primera fila de mi grilla, el fit solo funciona sobre el width y no sobre el height?
aun no puedo resolverlo, les adjunto un pantallazo para mejor comprensión, esto me ocurre si lo cargo dentro del viewport, como si lo acceso individualmente. la propiedad layout del panel esta configurada a 'fit', incluso he intentado agregando layoutConfig:{align : 'stretch'} sin suerte. he pensado que puede ser el hecho que mis componentes los renderizo dentro de una ventana que maximizo y no directamente en el body del documento. podría ser esa la causa?
lo probe, pero no me resulta, de hecho al principio me daba un error porque el contenedor de mi tabpanel es la region 'center de mi viewport y me daba un error al usar el layout: 'fit', entonces puse mi tabpanel como item dentro de mi region pero aun se conserva "recortada" <!-- s:( --><!-- s:( -->
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.