2012-11-09 3 views
3

데이터베이스에서 검색된 정보가있는 눈금을 표시하는 ExtJs 창을 만들었습니다. 이제는 DataGrid 행에서 이벤트 두 번 클릭해야합니다. 내가 가지고있는 문제는이 이벤트에서 입력 필드를 포함하는 다른 창을 열고 그리드의 클릭 된 행에서 값을 추가해야합니다. 여기 ExtJs 행을 두 번 클릭하고 입력 필드의 다른 창에 레코드를 전달하십시오.

는 두 번 클릭하여 리스너에서 코드입니다 :

listeners : { 
    itemdblclick: function(dv, record, item, index, e) { 
      _restoreCallsWindow().show(); //show the second window 
      Ext.get("sense-restore-calls-path-textfield-bodyEl").child('.x-form-text').set({value:record.data.path}, true); //get the input field and add value 
     } 
} 

위의 코드는 내가 불을 지르고의 요소를 검사 할 때 그리드의 정보와 값 속성을 가지고 있지만, 내가 표시 할 확인을 작동 이 값은 입력 필드에 있습니다. 어떻게해야합니까?

지식을 공유해주세요.

감사합니다.

+0

두 번째 창에 대한 참조를 유지하고 구성 요소 쿼리를 사용하여 텍스트 필드를 찾고 싶다고 생각합니다. 그런 다음 setValue() 함수를 사용하여 값을 설정하거나 해당 창에 양식을 작성하고 해당 양식에서 loadRecord()를 사용하십시오. 어쨌든 jsFiddle 또는 더 많은 코드가 더 나은 답변을 제공해야합니다. –

답변

1

난 당신이 창 내에서 Ext.form.Panel이 생각 당신은 다음을 수행해야합니다

listeners : { 
    itemdblclick: function(dv, record, item, index, e) { 
     var win = _restoreCallsWindow(), 
      field= win.down('textfield'); // assuming you have just one textfield 
     field.setValue(record.get('path')); 
    } 
} 

각 필드의 이름 속성은 레코드의 속성 이름이 일치해야합니다. 다른 현명한이 작동하지 않습니다.

+0

더 정확하게 설명하지 못해 죄송합니다. Ext.form.Panel을 사용하지 않고 Ext.grid.Panel을 대신 사용하고 있습니다. – user1812671

+0

@ user1812671 그럼 필드는 어디에 있습니까? – sra

+0

@ user1812671 열어 본 창에 '텍스트 필드'가 하나만 있다고 가정하는 편집 완료. 그게 아니라면 다시 논평 할 자유가 없어졌습니다. – sra