2011-05-23 9 views
7

¡Quiero agregar la configuración de allow Blanks cuando hago clic en un nodo en mi Tree Panel! si el nodo es una hoja, quiero poner la configuración del campo de nombre: allowBlank: false y si no es una hoja, allowBlank: true. No encuentro el método para hacer esto?¿Cómo agregar la configuración del campo sobre la marcha?

Muchas gracias :)


, gracias a su respuesta, pero mi cuadro combinado no es una variable global:

var monPrepanel = Ext.create('Ext.form.Panel',{ 

     frame : true, 
     title : 'Editing Zone', 
     //renderTo : 'mesfields', 
     //width : 750, 
     forceFit : true, 

     items: [{ 

       xtype:'fieldset', 
       title: 'Add Task : ', 
       margin : '20 20 20 20', 

       collapsible: true, 
       defaultType: 'textfield', 
       defaults: {anchor: '100%'}, 
       layout: 'anchor', 
       items: [ { 

       itemId : 'p0', 
       allowBlank : false, 


     xtype : 'textfield', 
    anchor : '60%', 

     padding : '0 30 0 30', 
      fieldLabel : 'Task', 

      name : 'task' 
     } , { 

       itemId : 'p1', 
       allowBlank : false, 


     xtype : 'combobox', 
      anchor : '40%', 
      store : materialstore, 
      queryMode: 'local', 
      displayField: 'data', 
      width : 50, 
      valueField: 'data', 
      editable : false, 

     padding : '0 30 0 30', 
      fieldLabel : 'Material', 

      name : 'material' 
     } , { 

       allowBlank : true, 

     xtype : 'combobox', 
      anchor : '40%', 
      store : ccstore, 
      queryMode: 'local', 
      displayField: 'data', 
      width : 50, 
      valueField: 'data', 
      editable : false, 

     padding : '0 30 0 30', 
      fieldLabel : 'CC', 

      name : 'cc' 
     } 

necesito para acceder al componente combobox por id tal vez? ¿Hay soluciones para acceder a este componente en los elementos?

Respuesta

15

Establecer una id de propiedades para el cuadro combinado deseado (id: 'anyId'), y utilizar Ext.apply(Ext.getCmp('anyId'), {your config object});

+0

cómo obtener la configuración existente, ¿podría reemplazar '{su objeto de configuración}' con la configuración existente –

5

En general, así es como "aplica" los cambios a un componente Ext que ya ha creado.

var combo = new Ext.form.ComboBox({some initial config}); 

Ext.apply(combo, {your config object}); 

¿Cómo está cargando su Treenodes? Probablemente lo haga mejor al agregar esas propiedades desde el back-end si es de allí de donde proviene.

+0

Gracias a su respuesta, pero mi cuadro combinado no es una variable global – Mepps

+2

No tiene que ser. Si sabe cuál es su ID DOM, puede obtener una referencia utilizando Ext.getCmp ('myDomID'); –

+0

Esta técnica de "aplicar" también funciona para aquellas configuraciones que alteran el diseño del componente. Por ejemplo, una propiedad colapsable Ext.form.FieldSet se establece en verdadero después de que se representa. En mi caso, el diseño no se actualiza: Ext.apply (fieldset, {collapsible: true, style: "background: red"}); –

Cuestiones relacionadas