2009-07-21 11 views
5

Tengo una configuración bastante complicada que he reducido al siguiente código. Tengo un FormPanel externo, donde intento incluir un componente que es una subclase FormPanel. En FF está provocando un error "this.body is null".ExtJS FormPanel en un FormPanel falla con "this.body is null"

¿Le está pasando esto a alguien más? ¿Es posible hacer que esto funcione? No quiero tener que tocar la subclase si no es necesario.

var test = new Ext.Window({ 
    title: 'test', 
    items: [{ 
    xtype: 'form', 
    items: [{ 
     // this is where the subclass of FormPanel goes 
     xtype: 'form', 
     items: [{ 
     xtype: 'textfield', 
     fieldLabel: 'Testing' 
     }] 
    }] 
    }] 
}); 
test.show(); 

Respuesta

15

no estoy seguro de si este es su problema exacto, pero sí sé que nunca debe incrustar un xtype: 'forma' en una xtype: 'forma'. Si necesita su funcionalidad de diseño, en lugar de xtype: 'formulario', use xtype: 'panel' con diseño: 'formulario'.

+1

Una cuestión de pregunta, pero ¿por qué no se supone que debes usar un xtype: 'forma' en un xtype: 'forma'? Entiendo que no tiene mucho sentido en términos de HTML, pero en lo que respecta a javascript, solo son objetos. –

+3

Cuando el script se representa en el HTML, que esencialmente tendríamos:

Jason

+0

Gracias un millón de veces. Acabo de perder más de una hora con este problema :( – StevenMcD

0

Está intentando esencialmente incrustar un FormPanel dentro de otro FormPanel. Esto no funcionará. Creo que lo que quiere es la siguiente:

var test = new Ext.Window({ 
    title: 'test', 
    items: [{ 
    xtype: 'form', 
    items: [{ 
     xtype: 'textfield', 
     fieldLabel: 'Testing' 
    }] 
    }] 
}); 
test.show(); 
0

creo que funcionaría si se ha añadido algo (F. E. campo de texto oculto) en 'forma' en primer lugar.

0

Extjs no le impide tener que entender HTML. No puedes tener formularios anidados.

Cuestiones relacionadas