2012-07-23 3 views
1

일부보기의 경우 동쪽 영역을 확장하고 축소해야하는 테두리 레이아웃이 있습니다. 화면이 처음부터 잘 작동하지만, 하지만 브라우저의 새로 고침 버튼을 클릭하면 동쪽 지역이 축소 된 경우 동쪽 지역이 축소 된 것으로 나타납니다. 내 이해에 따라 새로 고침 할 때마다 extJS 코드가 시작될 때 실행되므로 안됩니다. 따라서 새로 고침을 수행 한 후에 동쪽 영역을 볼 수 있어야합니다. Ext.getCmp ('panel')는 this.el이 null이거나 객체가 아님을 나타냅니다.

동쪽 지역은 사용자가 나는 다음과 같은

Ext.getCmp('center_panel').add({ 
     id: 'center_panel_container', 
     layout: 'border', 
     defaults: { 
     'border': true 
     },  
     items:[{ 
      id : 'header_panel', 
      layout: 'fit', 
      region: 'north', 
      height: 30, 
      items: [tbar] 
     },{ 
      id: 'master_panel', 
      layout: 'fit', 
      region: 'center', 
      width: '60%', 
      bodyStyle:{"background-color":"white"}, 
      autoScroll: true, 
      items: [panelLeft,panelLeftSchd,panelLeftStartUp] 
     }, { 
      id: 'report_panel', 
      layout: 'fit', 
      region: 'east', 
      width : '40%', 
      split:true, 
      autoScroll: true, 
      items: [panelRight, panelRightStartUp] 
    }] 
}); 
     Ext.getCmp('report_panel').expand(true); 

에에 노력 새로 고침 안타 때마다 확장 만들려면하지만 다음과 같은 오류 this.el가 null인지 개체 얻고있다. 동쪽 지역을 만드는 방법

는 사용자가 새로 고침을

덕분에,

답변

3

Ext.getCmp('report_panel')이 시간에 렌더링되지 않기 때문에 이런 일이 당신은 그것의 확장 메소드를 호출하려 할 때마다 안타 때마다 확대했다. 이는 Ext-JS가 구성 요소를 배치 할 때 setTimeout을 사용하기 때문입니다. 가장 간단한 해결책은 렌더링 이벤트를 기다려 당신은 또한 부모 컨테이너의 afterlayout 이벤트를 기다릴 수 처리기

{ 
     id: 'report_panel', 
     layout: 'fit', 
     region: 'east', 
     width : '40%', 
     split:true, 
     autoScroll: true, 
     items: [panelRight, panelRightStartUp], 
     listeners: { 
      render: function(panel) { 
       panel.expand() 
      } 
     } 
} 

에서 확장 호출하는 것입니다.

+0

감사를 할 잊어 수 있도록하는 것이 자신의 이전 세션에 있던 위치에 자신을 설정 새로 고침에 따라, 그래서 그 상태를 기억하는 경향이 있지만, 당신의 솔루션은 작동하지 않았고, 2 시간 동안 검색 한 후에 스플리터에 상태가 있음을 알았습니다. 기본적으로 사실, 사용자가 새로 고침을 할 때 스플리터가 이전 세션 상태를 기억하고 수정했습니다. 한 줄을 추가했습니다. stateful : false, –

+0

@AnuragSharma 정확하기 만하면 내 솔루션이 작동하지 않는다고 잘못되었습니다. 해결책이 당신이 얻고있는 오류 메시지 (귀하의 질문 *)와 함께 문제를 해결할지라도 당신이 얻으 려던 문제를 해결하지 못했다고 말하는 것이 더 정확합니다. 차이점을 이해할 수있을 것입니다. 여전히 정확한 답으로 표시했기 때문입니다. –

+0

@JuanMendes 내 기분이 상처를 받으면 극히 유감스럽게 생각합니다. 그러나 이것이 내 의도가 아님을 확인하고 싶습니다. –

0

스플리터는 스플리터는 그래서 그의 상태가 followiing 응답에 대한

{ 
     id: 'report_panel', 
     layout: 'fit', 
     region: 'east', 
     width : '40%', 
     split:true, 
     **stateful : false,** 
     autoScroll: true, 
     items: [panelRight, panelRightStartUp] 
} 
관련 문제