2012-01-15 2 views
0

격자 패널을 사용합니다. 나는 그리드에서 행을 선택하면 나는 다음과 같은 결과를 얻을 : 나는 '는 document.body'모든 일에 양식을 렌더링하는 경우ExtJS 팝업 창 양식 데이터로드

  • 확인하고, 양식 필드가 채워집니다.
  • 동일한 양식이 창 패널에서 시작되면 양식 필드가 비어 있습니다.
  • 둘 다 사용할 때 'document.body'에 렌더링 된 Form은 이고 닫혀 있고 Window의 양식 필드가 채워집니다.

나는 실수를 저질렀다.

// Grip panel part 
sm: new Ext.grid.RowSelectionModel({ 
     singleSelect: true, 
     listeners: { 
        rowselect: function(sm, index, record) {deleteWindow.show();} 
        } 
     }) 
// End Grid panel part  

var myForm = new Ext.form.FormPanel({ 
     title:"Basic Form", 
     width:425, 
     frame:true, 
     items: [ 
      new Ext.form.TextField({ 
       id:"to", 
       fieldLabel:"To", 
       width:275, 
       allowBlank:false, 
       blankText:"Please enter a to address", 
        readOnly: true 
      }), 
      new Ext.form.TextField({ 
       id:"subject", 
       fieldLabel:"Subject", 
       width:275, 
       allowBlank:false, 
       blankText:"Please enter a subject address", 
       readOnly: true 
      }), 
     ], 
     buttons: [ 
      {text:"Cancel"}, 
      {text:"Save"} 
     ] 
    }); 

var deleteWindow = new Ext.Window({ 
     id: 'id_deleteWindow', 
     title: 'Delete', 
     closable:true, 
     width: 750, 
     height:  380, 
     plain:true, 
     layout: 'fit', 
     items: myForm 
}); 

var id_test = 2; // This is only for this problem 

//myForm.render(document.body); // When using this code everything is ok, and form fields are filled 


myForm.getForm().load({ 
       url:'ggg.php', 
       params:{ 
         id: id_test 
         } 
}); 

JSON 데이터

{success:true,results:[{"id_test":"1","to":"a","subject":"aa"}]} 

답변

0

내가 코드를 다음과 같이 변경 제안 :

말합니다 (텍스트 필드에 ID 속성을 사용하는 대신에
  1. , ID : '주제를'), 이름 속성 (이름 : 'subject')을 사용하십시오.
  2. 그냥 궁금 해서요 .... 그리드에서 rowselect 이벤트를 처리 할 때, 선택한 레코드를 pa 형식으로로드 할 수 있습니다 다시로드하는 것이 아니라. 이 경우, 당신은 양식 패널의 loadRecord() 메서드를 호출하고 여기에 기록 개체를 전달하고 내가 load이 때 알아 낸
0

창에 표시() 메소드를 호출 할 수 있습니다 양식에 전화 할 때 ExtJS method 양식을 확인하려면 form dom 요소에 액세스하려고합니다.

var deleteWindow = new Ext.Window({ 
    id: 'id_deleteWindow', 
    title: 'Delete', 
    closable:true, 
    width: 750, 
    height:  380, 
    plain:true, 
    layout: 'fit', 
    items: myForm, 
    listeners: { 
     show: function() { 
      var form = this.items.get(0); 
      form.getForm().load({ 
       url:'ggg.php', 
       params:{ 
        id: id_test 
       } 
      }); 
     } 
    } 
}); 
deleteWindow.show(); 
: 윈도우가 여기에

두 번째 솔루션 코드 보였다 후

  1. 양식 설정에 형성
  2. 로드 데이터를 method 추가 : 나는이 개 솔루션을 발견했습니다