2012-02-17 2 views
1

Extjs4를 사용하고 있습니다. 나는 폼로드에서 콤보 박스 디스플레이 필드와 값 필드를 설정해야한다. setValue() 폼로드시 comboxes 작동하지 않습니다. 벨로우즈 코드를 사용하고 있습니다. 제 코드에 무슨 문제가 있는지 알려주세요.Extjs4 콤보 상자 설정 값 필드 및 디스플레이 파일 ID

quiz_edit_form.load({ 
    url: BASE_URL + 'courses/testing/getCourseTest/' + quiz_id, 
    method: 'POST', 
    success: function(form, action){ 
      var chap_name = action.result.data.test_chapter_combo; 
      var less_name = action.result.data.test_lesson_combo; 
      Ext.getCmp('test_chapter_combo1').setValue(chap_name); 
      Ext.getCmp('test_lesson_combo1').setValue(less_name); 
      } 
}); 

감사

답변

1

나는 최근에 콤보와 비슷한 문제를 했어. 콤보의 forceselection 특성이 false으로 설정되어 있는지 확인하십시오. 그렇지 않으면 저장소에없는 값을 설정할 수 없으며 사용자가 트리거를 클릭 할 때까지 저장소가로드되지 않습니다. 사용자가 콤보에서 옵션 만 선택하도록하려면 forceselection: false을 입력하고 setValuesetRawValue을 입력 한 다음 forceselection: true을 입력하십시오.

희망이 있습니다.

+0

도움을 주셔서 감사합니다. Amalea,하지만 작동하지 않습니다. – siva565

+0

오류가 있습니까? // hiddenName 'test_chapter_combo1': 'test_linkchapter_val', displayField 'chapter_name', valueField 'chapter_id', fieldLabel이 '선택'콤보 ', ID :이 – Amalea

+0

번호 내 콤보 코드 { 위해 xtype이다 장 ', allowBlank : 거짓, blankText : 장'이 필요 ', triggerAction :'모든 ', queryMode :'원격 ', 가기 : chapter_store, 앵커 : '60 %의' selectOnFocus : 사실 } – siva565

0

설정하려는 값은 콤보에 바인딩 된 저장소에 있어야합니다. 저장소에서 값을 가져 오려면 미리로드하거나 미리로드해야합니다 (저장소로드가 비동기적임을 기억하십시오).

+0

'forceselection'이'false'로 설정된 경우에는 그렇지 않습니다. – Amalea