ExtJS TabPanel beforremove beforeclose 사용 설명

현재 시스템 은 Extjs 를 전단 프레임 워 크 로 사용 합 니 다.시스템 의 첫 페이지 레이아웃 은 border 방식 을 사용 합 니 다.왼쪽 아코디언 식 메뉴 표시 줄,중간 구역 은 TabPanel 용기 입 니 다.왼쪽 메뉴 표시 줄 에 있 는 대응 메뉴 를 클릭 하여 중간 구역 에 대응 하 는 Panel 을 추가 하고 Panel 은 추 가 된 gridview 를 삽입 합 니 다.현재 문 제 는 사용자 가 닫 을 때 팝 업 대화 상자 에서 사용자 에 게 현재 페이지(Panel)를 없 애 거나 현재 Panel 을 숨 기 고 임시 데 이 터 를 저장 할 지 여 부 를 알려 주 려 는 것 입 니 다.Extjs API 문 서 를 보고 추 가 된 panel 감청 beforecose 이벤트 의 주요 코드 는 다음 과 같은 중간 부분 입 니 다
 
//centerPanel
centerPanel = new Ext.TabPanel({
id: 'centerPnl'
, region: 'center'
, border: false
, iconCls: 'tabs'
, enableTabScroll: true
, items: [{
title: ' '
, autoScroll: true
}]
, defaults: { autoScroll: true }
}); Panelfunction addCMUAMS_LogTab() {
activeCMUAMS_LogTab = centerPanel.add({
id: 'CMUAMS_LogShowAll'
, title: ' '
, iconCls: 'tabs'
, closable: true
, bodyStyle: 'padding:10px'
, items: CMUAMS_LogGrid
, listeners: { beforeclose:TabCloseConfirm }
})
activeCMUAMS_LogTab.show();
}
그러나 이 경우 상황 은 다음 과 같 습 니 다 Panel 은'beforecclose'전에 닫 혔 습 니 다.나중에 인터넷 에 접속 하여 자 료 를 찾 아 보 니 갑자기 Tabe Panel 이 용기 로 서 그 곳 에서 먼저 사건 을 차단 해 야 하지 않 겠 습 니까?따라서 중간 부분 코드 를 다음 과 같이 수정 합 니 다./center Panel
 
centerPanel = new Ext.TabPanel({
id: 'centerPnl'
, region: 'center'
, border: false
, iconCls: 'tabs'
, enableTabScroll: true
, items: [{
title: ' '
, autoScroll: true
}]
, defaults: { autoScroll: true }
// beforeremove
, listeners: { beforeremove: function(ct,component ) { return false; } }
});
다시 실행 합 니 다.효과 보기: Panel 의 닫 기 단 추 를 누 르 면 TabPanel 용기 에 있 는 Remove 이 벤트 를 먼저 실행 한 다음 Panel 자체 의 Close 이 벤트 를 실행 해 야 합 니 다.프로젝트 시간 이 급 해서 깊이 연구 할 시간 이 많 지 않 습 니 다.동생 도 JS 와 Extjs 에 대해 잘 알 지 못 합 니 다.지나 가 는 길에 잘 아 는 친구 가 있 으 면 진실 한 이 유 를 알려 주 십시오.

좋은 웹페이지 즐겨찾기