2013-08-07 2 views
0

У меня есть окна с элементами включают в себя 2 вещи, какExtjs 4,1 - Показать и скрыть некоторые специальные элементы в виде

var win = Ext.create('Ext.window.Window', { 
     title: 'Hello', 
     height: 200, 
     width: 400, 
     layout: 'fit', 
     items: { 
      xtype: 'form', 
      border: false, 
      hidden: true, 
      items: [{ 
       xtype: 'textfield', 
       fieldLabel: '1' 
      },{ 
       xtype: 'textfield', 
       fieldLabel: '2' 
      }] 
     } 
    }).show(); 

я сделать кнопку, и я хочу показать/скрыть первый пункт (fieldLabel : '1') в моем окно, подобное

Ext.create('Ext.Button', { 
     text: 'Show first item', 
     visible: false, 
     renderTo: Ext.getBody(), 
     handler: function() { 
      win.down('form').items.items[0].show(); // not working 
     } 
    }); 

Но это не работает. Как исправить эту благодаря

пс: Я не хочу использовать идентификатор, чтобы получить бонус, б/с моя форма динамические благодаря
вот мой полный код http://jsfiddle.net/aMKjN/

+1

Но форма скрыта, так показывая один из детей не имеет значения. –

+1

@EvanTrimboli, если я комментирую '// hidden: true,' и первый скрыть первый элемент, например 'win.down ('form'). Items.items [0] .hide();' и я хочу показать все by 'win.down ('form'). show();' и это не работает? – DeLe

+0

Это правильно. Если вы показываете родителя, это не означает, что дети автоматически отображаются, они сохраняют свое состояние. –

ответ

0

Попробуйте это. Он покажет только первые textfield.

Ext.create('Ext.Button', { 

    text: 'Show first item', 

    visible: false, 

    renderTo: Ext.getBody(), 

    handler: function() { 

     win.items.items[0].show(); 
     win.items.items[0].items.items[1].hide(); 
    } 
}); 
+0

Но если я комментирую '// hidden: true', и первый скрыть первый элемент, например' win.down ('form'). Items.items [0] .hide(); 'и я хочу показать все на 'win.down ('form'). show();' и это не работает? – DeLe

0

попробовать это он будет показывать только текстовое поле 1

Ext.onReady(function() { 

    var win = Ext.create('Ext.window.Window', { 
     title: 'Hello', 
     height: 200, 
     width: 400, 
     layout: 'fit', 
     items: { 
      xtype: 'form', 
      border: false, 
//   hidden: true, 
      items: [{ 

       xtype: 'textfield', 
       id:'first', 
       hidden: true, 
       fieldLabel: '1' 
      },{ 
       xtype: 'textfield', 
       fieldLabel: '2' 
      }] 
     } 
    }).show(); 

    Ext.create('Ext.Button', { 
     text: 'Show first item', 
     visible: false, 
     renderTo: Ext.getBody(), 
     handler: function() {    
      Ext.getCmp('first').setVisible(true) 
     } 
    }); 
}); 
Смежные вопросы