2014-10-03 3 views
0

버튼 클릭시 패널 내부의 활성 항목 (카드 레이아웃)을 변경해야하는이 요구 사항이 있습니다. 버튼이 다른 다른 패널에 있습니다. 나는 아래를 시도했다. 그러나 그것은 일하지 않았다. 버튼을 클릭해도 패널이 변경되지 않습니다.버튼 클릭 - 패널에서 카드 레이아웃 내부 패널을 변경하는 방법 4

Ext.getCmp ('PanelID'). layout.setActiveItem ('requiredcardID'); -이 코드를 버튼 핸들러에서 사용하고 있습니다.

setActiveItem이 잘못된 방법입니까 아니면 잘못된 컨텍스트에서 사용하고 있습니까?

답변

1

올바른 구문으로 보입니다. ID를 확인하여 구성 요소에 대한 참조가 있는지 확인하십시오. 이 바이올린은 5를 사용하지만, 나뿐만 아니라 4에서 테스트 :

https://fiddle.sencha.com/fiddle/ba6/

Ext.application({ 
    name : 'Fiddle', 

    launch : function() { 
     var panel = Ext.create('Ext.Panel',{ 
      renderTo:Ext.getBody(), 
      title:'myPanel', 
      items: [ 
       Ext.create('Ext.panel.Panel', { 
        layout: 'card', 
        id: 'PanelID', 
        activeItem: 0, 
        items: [Ext.create('Ext.panel.Panel', { 
         itemId: 'card-1', 
         html: 'hello' 
         }), 
         Ext.create('Ext.panel.Panel', { 
          itemId: 'card-2', 
          html: 'hello2' 
         })] 
       }), 
       Ext.create('Ext.Button', { 
        text: 'change item in layout', 
        handler: function() { 
         Ext.getCmp('PanelID').layout.setActiveItem('card-2');    
        } 
       }) 
      ] 
     }); 
    } 
}); 
관련 문제