2012-05-05 3 views
2

내가센차 터치 - 버튼/숨기기 팝업 패널을 제거하는 방법 클릭

Ext.define('MyApp.view.DatePanel', { 
extend: 'Ext.Panel', 
alias: 'widget.DatePanel', 
config: { 
    itemid:'DatePanel', 
    modal:true, 
    centered: true, 
    width:'320px', 
    height:'110px', 
    items:[ 
      { 
       xtype: 'datepickerfield', 
       label: 'Select date', 
       type:'date', 
       itemId: 'rptDate', 
       value: new Date(), 
      }, 
      { 
       xtype:'toolbar', 
       docked:'bottom', 
       items:[{ 
        text:'OK', 
        ui:'confirm', 
        action:'ShowTurnOverReport' 
       }, 
       { 
        text:'Cancel', 
        ui:'confirm', 
        action:'Cancel' 
       } 

      } 
     ] 
} 

다음과 같은 설정 패널을 만든}); 팝업 취소 버튼에서 지금 우는 코드

Ext.Viewport.add({xtype: 'DatePanel'}); 

를 사용하여 내가 숨길 클릭으로

내가이 패널을 표시/I가

Ext.Viewport.remove(Datepanel), 
var pnl = Ext.getCmp('DatePanel'); 
pnl.hide(); 

하지만 아무것도 시도 그것을

을 제거 일했다. 내가 어떻게 할 수 있을까 ??

답변

6

여러 가지 방법으로 할 수 있습니다.

해결책 1 :

Ext.getCmp() 기능을 사용하려면, 당신은 당신의 구성 요소에 대한 id 속성 집합이 필요합니다. 따라서

id에 제공하여 DatePanel 같은, 아래

Ext.define('MyApp.view.DatePanel', { 
extend: 'Ext.Panel', 
alias: 'widget.DatePanel', 
id:'datepanel', 
config: { 
    ...... 
    ...... 

다음 Cancel 버튼을 클릭 핸들러에 아래의 코드를 작성 ...

{ 
text:'Cancel', 
ui:'confirm', 
action:'Cancel' 
listeners : { 
    tap : function() { 
      var pnl = Ext.getCmp('datepanel'); 
      pnl.hide(); 
    } 
} 
} 

해결 방법 2를 표시 :

왜냐하면 너 alr eady이 itemid 속성을 정의, 당신은 ... 당신의 구성 요소에 대한 참조를 얻을 수

var pnl = Ext.Container.getComponent('DatePanel'); 
pnl.hide(); 
+0

고마워 var에 손익 = Ext.getCmp ('datepanel')과의 작업 벌금을 다음 줄을 사용할 수 있습니다; pnl.hide(); 하지만 하나의 문제는 거기에 내가 다시 pnl.destroy()를 사용하여 (이 기존의 구성 요소가 파괴되었는지 확인하십시오) 같은이 패널을 열 때 경고를 준다; 대신 pnl.hide(); –

+0

id 대신 itemId를 사용할 수 있습니다. Ext.ComponentQuery.query ('# yourItemId') [0]을 사용하여 구성 요소를 식별합니다. –