Foro

Como acceder a mis elementos

0
Hola, estoy creando una aplicacion en extjs y tengo una duda, tengo una funcion init en la cual declaro todos mis componentes como paneles, ventanas, etc..., tambien tengo un formulario el cual aparece cuando presiono un boton. Dicho formulario tiene un boton llamado aceptar, y siguiendo los excelentes tutoriales de esta pagina hago el submit en otra funcion, llamada sendData, en la cual ya no puedo acceder a mi ventana, queriendola esconder de esta manera: ventana.hide(), esta mas o menos de esta manera Ext.ns('com.diti.gvcuenta'); Ext.BLANK_IMAGE_URL='../ext-2.3.0/resources/images/default/s.gif'; com.diti.gvcuenta.Panel = { init: function() { this.form = new Ext.form.FormPanel({ url: 'insertar.jsp', items: [tcuenta,tcodigo,tobjeto,tdescripcion,tnivel,checkboxes,tpredec,ttipgas,tnatope] }); var ventana = new Ext.Window({ width: 400, height: 300, modal: false, closable: false, items: this.form, itemId: 'mivent', buttonAlign: 'center', buttons: [{text:'Aceptar',handler:this.sendData,scope:this},cancelar] }); },//fin de la funcion init sendData: function(b) { this.form.getForm().submit(); ventana.hide();//Aqui es donde no me funciona } Es decir, quiero cerar mi ventana al presionar el boton aceptar, despues de que se envian los datos del formulario. He leido algo sobre el metodo up, el cual supuestamente puede regresar un elemento padre o un elemento hijo, trate de hacerlo de la siguiente manera: sendData: function(b) { this.form.getForm().submit(); var ventana b.up("#idventana"); ventana.hide(); } pero no me ha funcionado. Agradezco de antemano cualquier ayuda que me puedan brindar, ya que soy algo nuevo en este framework, y espero haberme explicado bien. Saludos y gracias otra vez
1
Estas seguro que estas usando la version 3? porque esta linea me parece mas de 4: var ventana b.up("#idventana"); en todo caso hay varias formas de hacerlo, por ejemplo puedes usar el itemId que le diste a tu ventana y acceder a ella asi: Ext.Container.getComponent("mivent").hide(); o darle un id a tu ventana: var ventana = new Ext.Window({ width: 400, height: 300, modal: false, closable: false, items: this.form, itemId: 'mivent', buttonAlign: 'center', buttons: [{text:'Aceptar',handler:this.sendData,scope:this},cancelar] , id :"miventana" }); y usar : Ext.getCmp("miventana").hide(); te aconsejo en todo caso que ocultes la ventana en los métodos success del submit, porque como es una llamada asincronica la que hace puede producirse un error o validación por el lado del servidor que encontrará tu ventana oculta, algo así: sendData: function(b) { this.form.getForm().submit({ success: function(form, action){ Ext.Container.getComponent("mivent").hide(); }, failure: function(form, action){ alert("error"); } }); } espero te ayude en algo
0
Excelente muchas gracias, la verdad es que soy algo nuevo con el framework, funciona perfectamente, y gracias por los consejos extra :) Saludos!

¿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.