2017-12-12 35 views
0

그리드, 폼 및 윈도우가있는 응용 프로그램을 고려하십시오.combobox : 업데이트시 valueField 및 displayField 값을 서버에 보내십시오.

그리드 행을 선택하면 레코드 데이터 (세부 사항)가 양식 (바인딩)으로 표시됩니다.

그리드 행의 dblclick 이벤트를 사용하면 레코드를 업데이트하는 폼이있는 창이 표시되고 필드가 채워집니다 (바인딩).

폼의 창에는 저장 상자가있는 콤보 박스가 있으며 업데이트 할 필드의 값은 바인딩으로 채워집니다.

내 문제 :

I 동시에 업데이트 (ID와 자동차 값)에서 서버에 콤보 valueField하고 displayField을 보낼 필요가

.

콤보 박스 구성으로 직접 수행하거나 다른 방법으로 바인드/값을 추가하는 방법이 있습니까?

xtype: 'combobox', 
fieldLabel: 'myField', 
name:'id', 
bind: { 
    store: '{mystore}', 
    value: '{record.id}' //load value from record to update and bind (to display in grid and form) 
}, 
displayField:'cars', 
valueField:'id', 
queryMode: 'local', 

편집 :

var values = myForm.getValues(); 
    var comboValue = Ext.ComponentQuery.query('#mycomboItenmId')[0].getRawValue(); 

    var objCombosValue = { 
     'combo_value': comboValue 
    } 

    var allValues = Ext.Object.merge(values, objCombosValue); 

    record.set(allValues); 

    store.sync({}) 

이에 대한 순수 결합 액이 있습니까 :이다, 방법 또는 이벤트의 사용을 필요로 나는 보통 사용

하나의 솔루션을?

답변

1

store sync()를 통해 값을 서버로 보냅니 까? 모델에 새 필드를 추가하여 displayField 값을 보유하고 콤보 상자의 'select'이벤트에서 해당 필드를 업데이트 할 수 있습니다.

+0

파비오 (Fabio). 내가 사용한 한 가지 해결책은 sync 메서드 앞에 일종의 extaparameters를 추가하여 작업을 잘하는 것입니다 (게시물을 편집했습니다). 그러나 내가 의도 한 것은 이벤트 나 방법을 사용할 필요없이 값을 보내는 것이 었습니다. '순수한 구속력'이있는 마 베. – josei