Cerrar ventana y volverla a abrir en blanco
Hola tengo definida esta ventana para subir archivos, y requiero que se destruya cuando se termine de subir el archivo, le coloque la funciòn destroy y se cierra la ventana pero en Firebug me sale un error que dice TypeError: a is undefined y cuando vuelvo a abrir la ventana me sale pero los botones no los visualiza, de que otra manera puedo cerrar o destruir las ventanas?
var ventana_archivo = new Ext.Window({
width:410,
id:'winid',
title: 'Adjuntar Archivos',
modal: true, //set the Window to modal
items:[{
xtype: 'form',
frame: true,
width:400,
border: 0,
bodyPadding: '10 10 0',
defaults: {
anchor: '100%',
allowBlank: false,
msgTarget: 'side',
labelWidth: 50
},
items: [
simpleCombo,
{
xtype: 'textfield',
id: 'descripcion',
width: 300,
labelWidth: 100,
fieldLabel: 'Breve descripción'
},{
xtype: 'filefield',
//padding: '15 15 0 0',
width: 300,
labelWidth: 100,
id: 'form-file',
emptyText: 'Selecccione el archivo',
fieldLabel: 'Archivo',
name: 'archivo',
buttonText: '',
buttonConfig: {
//iconCls: 'upload-icon'
icon: 'images/image_add.png',
iconMask: true
}
}],
buttons: [{
text: 'Grabar',
handler: function(){
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
scope: this,
url: '../cibac/upload.php?o=' + JSON.stringify(names, replacer) + '&d=' + Ext.getCmp('descripcion').getValue() + '&t=' + Ext.getCmp('tipo_archivo').getValue() + '&p=1',
waitMsg: 'Cargando el Archivo...',
success: function(fp, o) {
Ext.Msg.alert('Archivo!', 'El archivo fue recibido satisfactoriamente');
ventana_archivo.destroy();
}
});
}
}
},{
text: 'Cancelar',
handler: function() {
this.up('form').getForm().reset();
}
}]
}]
});
El llamado a la ventana lo hago asì: ventana_archivo.show();
Hola, en vez de destruir la ventana, escondela, pero utiliza su id:
Ext.getCmp('winid').hide();
y en donde haces el llamado para mostrarla podrias utilizar lo sig.
var miVentana = Ext.getCmp('winid');
if(miVentana){
miVentana.show();
}else{
//Aqui podrias colocar tu código cuando creas la ventana y despues mostrarla
}
No se si esto te pueda servir, probablemente te muestra en blanco ya que le estas pasando un item(simpleCombo) a tu form, y cuando destruyes la ventana también se este destruyendo este componente, y cuando la quieres mostrar por segunda vez ya no exista simpleCombo. No estoy seguro, pero podrias probar...
Gracias Cevrhugov, ya coloque el código que me dices y funciona, antes de ocultar la ventana estoy reseteando el form con esta instrucciòn this.up('form').getForm().reset(); solo que el archivo no me lo deja en blanco que es el que cargo en form-file, como reseteo ese filefield, ya mas luego tratarè de organizar el còdigo pues al momento de darle click en el boton x de la ventana me genera un error que puedo detectar en el Firebug, si tienes otra soluciòn me comentas gracias pues el desarrollo lo estoy haciendo sobre Ext Desk.
Hola cevrhugov, ya verifique lo que me digiste y funciona pero tengo que dar dos click para que se vizualice la ventana, alguien tiene otra solución?
Hola, ya solucione el inconveniente que tenia, al combo le he asignado un JSON que viene de un archivo PHP, y lo de más lo defini fue con una ventana y haciendo el llamado de ella dentro de otra, asi me funciono en EXTJS DESK, aca dejo parte del código, el cierre de la ventana utilizada para subir archivos la cierro con CLOSE.
var store_tipoarchivo = Ext.create('Ext.data.Store', {
autoLoad: true,
autoSync: true,
remoteFilter: false,
remoteSort: true,
storeId: 'storearchivos',
model: modelo_tipoarchivo,
//pageSize: 10,
proxy: {
type: 'ajax',
url: '../cibac/modules/EnCampo/Client/tipoarchivo.php',
reader: {
type: 'json',
idProperty: 'id_tipoarchivo',
root: 'data',
fields: ['id_tipoarchivo','nombre_tipoarchivo'],
useSimpleAccessors: true
}
},
sorters: {
property: 'nombre_tipoarchivo'
}
});
var form_archivo = new Ext.form.FormPanel({
width:330,
id: 'form',
bodyStyle:'margin-left:10px;',
border:false,
labelWidth: 80, //Con esto hacemos mas pequeñas las etiquetas
defaults: {
xtype:'textfield',
width:150
},
items:[
{
xtype: 'combo',
name: 'tipo_archivo',
id: 'tipo_archivo',
width: 300,
fieldLabel: 'Tipo de Archivo',
mode: 'local',
store: store_tipoarchivo,
valueField:'id_tipoarchivo',
displayField:'nombre_tipoarchivo',
allowBlank:false
},{
xtype: 'textfield',
id: 'descripcion',
width: 300,
labelWidth: 100,
fieldLabel: 'Breve descripción',
allowBlank:false
},{
xtype: 'filefield',
//padding: '15 15 0 0',
width: 300,
labelWidth: 100,
id: 'form-file',
emptyText: 'Selecccione el archivo',
fieldLabel: 'Archivo',
name: 'archivo',
buttonText: '',
allowBlank:false,
buttonConfig: {
//iconCls: 'upload-icon'
icon: 'images/image_add.png',
iconMask: true
}
}
]
});
var win_archivo = new Ext.Window({
title: 'Edit Movie',
width:360,
height:170,
modal: true,
bodyStyle: 'padding:10px;background-color:#fff',
buttons: [
{
text:'Enviar Archivo',
handler: function(){
var form = Ext.getCmp('form').getForm();
if(form.isValid()){
//var getData = Ext.getCmp('gridproductor').getSelectionModel().getSelection();
form.submit({
url: '../cibac/upload.php?o=' + JSON.stringify(names, replacer) + '&d=' + Ext.getCmp('descripcion').getValue() + '&t=' + Ext.getCmp('tipo_archivo').getValue() + '&p=1',
waitMsg: 'Cargando el Archivo...',
success: function(fp, o) {
Ext.Msg.alert('Exito!', 'Archivo procesado "' + o.result.file + '" en el servidor');
win_archivo.close();
}
});
}
}
},{
text:'Cancel'
}
],
items: [form_archivo]
});
win_archivo.show();
¿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.