2011-04-19 5 views
0

레일을 사용하여 ExtJs에서 탭 패널이있는 응용 프로그램을 개발 중입니다. 기본 탭에는 왼쪽에있는 단추 목록이 있습니다. 각 버튼을 클릭하면 새 탭이 열리고 그리드 또는 양식이 렌더링됩니다. 양식에서 새 레코드를 추가하면 그리드에 한 번에 표시되지만, 탭 패널을 닫고 단추를 다시 누르면 모눈이 표시되지 않습니다.EditorGrid 패널 + 버튼 - 데이터 다시로드 문제

데이터와 함께 그리드를 다시로드하는 방법은 무엇입니까?

P .: 브라우저를 수동으로 새로 고침하면 다시 표시됩니다.

미리 감사드립니다.

MyCode :

//** MyUnit.js in Units controller**// 

MyUnit = Ext.extend(MyUnitUi, { 
     initComponent: function() { 
     MyUnit.superclass.initComponent.call(this); 

      //Insert records... 

       var sbtn=Ext.getCmp('btnSave'); 

       sbtn.on('click',function(){ 
       var grid = Ext.getCmp('maingrid'); 
       var unitname = Ext.getCmp('unitname').getValue(); 
       var description = Ext.getCmp('description').getValue(); 

       var frm=Ext.getCmp('myform'); 

       Ext.Ajax.request({ 
       url: '/units', 
       method: 'POST', 

       params: {'data[unitname]':unitname,'data[description]':description} 

     }); 
       var grid=Ext.getCmp('maingrid'); 
       grid.store.reload(); 
       grid.show(); 
       frm.hide(); 
      }); 

}); 

//** MyViewport.js in Test1 Controller **// 

    var unit_bt =Ext.getCmp('btnUnit'); 
     unit_bt.on('click', function(){ 
     var unit_el =Ext.getCmp('tabcon'); 
     var tab = unit_el.getItem('tab_unit'); 
     if(tab) 
     { 
      tab.show(); 
     }else{ 
      unit_el.add({ 
       title : 'Unit of Measurement', 
       html  : 'I am new unit', 
       activeTab: 0, 
       closable : true , 
       id: 'tab_unit', 
       autoLoad:{url:'/units',scripts:true} 
       //store.load({params:{start:0, limit:25}}) 

      }).show(); 
      } 
     }); 

//** Units/index.html **// 
<!DOCTYPE html> 

<!-- Auto Generated with Ext Designer --> 
<!-- Modifications to this file will be overwritten. --> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>unit.xds</title> 
    <link rel="stylesheet" type="text/css" href="http://extjs.cachefly.net/ext-3.3.1/resources/css/ext-all.css"/> 
    <script type="text/javascript" src="http://extjs.cachefly.net/ext-3.3.1/adapter/ext/ext-base.js"></script> 
    <script type="text/javascript" src="http://extjs.cachefly.net/ext-3.3.1/ext-all-debug.js"></script> 
    <script type="text/javascript" src="MyUnit.ui.js"></script> 
    <script type="text/javascript" src="MyUnit.js"></script> 
    <script type="text/javascript" src="MyUnitStore.js"></script> 
    <script type="text/javascript" src="xds_index.js"></script> 
</head> 
<body></body> 
</html> 
+0

@rashmi .. 당신은 당신의 코드를 게시 할 수 있습니까? –

+0

@Abdel : 코드를 게시했습니다. – Rashmi

+0

그리드를 초기화하는 코드를 게시 할 수도 있습니까? 제 추측으로는 그리드를 탭에 렌더링했습니다. 그런 다음 탭을 닫으면 그리드가 탭과 함께 제거되므로 두 번째 시도에서 사라집니다. 더 게시하여 도움을 받으십시오. –

답변

0

@All : 당신의 노력에 감사드립니다. 내 친구가 그 해결책을 찾았습니다.

문제

는 다시 units.js에 다음 코드 줄을 추가하여 해결되었다 :

var grid=Ext.getCmp('maingrid'); 
grid.store.reload();