• Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!

Cerrar Ventana antes de realizar una nueva consulta.

Foros generales de ayuda Ext 3.0.

Ext.foro.Nuevo
Mensajes: 6
Registrado: 15 Mar 2011, 19:02
NotaPublicado: 26 Ene 2012, 16:43
Cordial Saludo a los miembros de la comunidad, requiero de su ayuda por favor, lo que pasa es que necesito que mi formulario funcione de a siguiente manera espero alguien pueda colaborarme, he realizado un formulario que recibe unos datos que son utilizados para filtrar una informacion que almaceno en un store y que coloco y muestro en un grid despues de que es exitoso sucess.

mi problema es que para una segunda consulta en el formulario si no he cerrado la ventana donde se coloque el grid este se repite, si hago otra consulta se coloca nuevamente asi sucesivamente :( , necesito saber Cómo antes de que sea exitoso pueda inspeccionar si la ventana ya esta visible, si es el caso pedirle al usuario que la cierre, para asi siempre mostrar solo una, como puedo hacer esto. ???

Graacias espero tener alguna ayuda por favor.
Para no ver esta publicidad, debes ser usuario del Foro.
Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)


Cuixer, una forma de administrar páginas web que nunca viste!

Avatar de Usuario
Ext.foro.Moderador
Mensajes: 353
Registrado: 17 Ago 2009, 12:06
NotaPublicado: 26 Ene 2012, 17:27
has probado con configurar tu ventana con :

closeAction:'hide'

y en el success en vez de cerrar tu ventana solo esconderla con

win.hide();

espero te sirva (^_^)

Ext.foro.Nuevo
Mensajes: 6
Registrado: 15 Mar 2011, 19:02
NotaPublicado: 27 Ene 2012, 13:46
Gracias. con referencia a la respuesta del compañero Tokkaido, a lo mejor no describe la estructura y el orden en mi codigo.

Lo que hice fue construir dentro del success el store el grid y window y a su vez hago un window.show(); para mostrarlo.
por dicha razon nose si tiene sentido que dentro del success lo muestre y lo oculte o por lo menos que solo haga un win.hide(); ya que mi idea principal es que se muestre. lo que quiero es controlar que cuando se de enviar! verificar que esa ventana no este alli por una consulta que se realizado anteriormente.

mi bonton de enviar tiene la siguiente forma dentro de él está un handler y dentro del él un sucess y failure.

creo que la idea es verificar en handler pero no dentro del success
como lo hago no tengo ni la mas remota idea, soy un novato.

pues mi idea es la siguiente hacer un if y else. pero aqui esta mi duda, por favor atento a lo siguiente:

Código: Seleccionar todo
// aqui esta las partes mas relevantes del dentro del boton (enviar!):
handler:function(){
   if{
   // si la ventana  no se cerro en una consulta anterior:
   // colocar una alert indicandole al usuario que la cierre, asi evito que se sobreponga una sobre otra
   // AQUI MI INEXPERENCIA ME IMPIDE SABER SI LA VENTANA SE ESTÁ MOSTRANDO,
   
   // Que coloco?? Como Lo Hago???? como se si la ventana esta abierta??

   }      
   else{
   // sino que muestre LA VENTANA con el GRID si la consulta fue exitosamente
         sucessfunction(form, action){
         },
   // o avise que por alguna causa, por ejemplo, error de conexion no se obtuvo respuesta       
         failure: function(form, action){

         }
      }
}



Si tiene alguna idea, o no me hice enterder o por el contrario esto no es una posible solucion por favor comunicarme. Gracias estoy Atento a cualquier cosa.
Avatar de Usuario
Ext.foro.Moderador
Mensajes: 353
Registrado: 17 Ago 2009, 12:06
NotaPublicado: 27 Ene 2012, 14:03
el problema es que no se como esta definida tu ventana pero puedes usar el método isVisible() de la ventana que te devuelve un true o un false, ahora bien podrías cerrar la ventana sin tener que preguntarle al usuario que lo haga si es mandatorio, me gustaría poder ver la estructura de tu ventana para poder ayudarte mejor

Ext.foro.Nuevo
Mensajes: 6
Registrado: 15 Mar 2011, 19:02
NotaPublicado: 30 Ene 2012, 15:49
Si quizás no sabes como esta definida mi ventana, y en general mi codigo, espero sigas el hilo de lo que deseo simplemente es evitar repetir la ventana cada vez que le doy enviar a mi boton del formulario, osea que siempre salga solo una ventana:

Gracias por prestar atencion al tema :)

este mi codigo gracias:

Código: Seleccionar todo
var pestana_1= {
   items:[
   {
   xtype:'form',
   url   : 'php/alineamiento.php',
   id: 'consulta1',
   items:[   {
      xtype:'combo',
      store: new Ext.data.SimpleStore({
         fields:['carrera','kr'],
         data:[['CRT1','valor 1'],['CRT2','valor 2'],['CRT3','valor 3']]}),
      fieldLabel:'<font size=2px color="#031E4B">Via Generadora Carrera</font>',
      hiddenName:'carrera',
      mode:'local',
      id: 'kr',
      displayField:'kr',
      valueField:'carrera',
      typeAhead:true,
      triggerAction: 'all',
      width:140
   }],
   buttons:[{    xtype: 'button', text:'Enviar!',
            handler:function(){   
            
      if (Ext.getCmp('consulta1').getForm().isValid()) {
               Ext.getCmp('consulta1').getForm().submit({                  
                  method: 'POST',
                  params:{ task:'GRABAR' },
                  waitTitle: 'Calculando Esquineros',
                  waitMsg: '....',
      success: function(form, action){
               var data = Ext.util.JSON.decode(action.response.responseText);
               var login = data.login.web;
                     
               store_esquineros = new Ext.data.Store({
               reader: new Ext.data.JsonReader({
               root:'rows',
               id: 'id'
                  },
                  [{ name:'lote'},{ name:'vp'}
                  ]
               )
               });
            store_esquineros.loadData(data);   
                  
            grid_esquineros= new Ext.grid.GridPanel({
               frame:false,
               id:"esquinero",
               autoHeight: true,
               store: store_esquineros,
               columns: [{
                      header   : '<b>ID Predios</b>',
                      dataIndex: 'lote'         
                       },{
                      header   : '<b>Via Principal</b>',
                      dataIndex: 'vp'}],
               sm:new GeoExt.grid.FeatureSelectionModel()
            });                     
            
            var WindowEsquinero = new Ext.Window({
                  closeAction: 'hide',
                  layout: "fit",
                  plain: false,
                  height: 220,
                  width: 380,
                  items: [
                  grid_esquineros
                  ]                  
               })
               WindowEsquinero.show();                  
      },
      failure: function(form, action){
      // Aqui hay una ventana que lanza un mensaje de error
      });         
      }});}
   }}]
   }]}

Volver a Ext 3.0: Ayuda





  • Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!

cron