나는 그랬다 before. 열쇠는 두 번째 콤보의 값을 요청한 첫 번째 콤보의 값을 전달한 다음 서버에서 결과를 필터링하는 것입니다. 다른 방법은 모든 가능한 값으로 두 콤보를로드 한 다음 첫 번째 콤보에서 값을 선택한 후 두 번째 콤보 저장소에서 필터를 설정하는 것입니다.
편집 : 여기 제가 사용했습니다.
Ext.define('Ext.ux.FilteredCombo', {
extend: 'Ext.form.field.ComboBox',
alias: 'widget.filteredcombo',
queryCaching: false,
getParams: function (queryString) {
var params = this.callParent(arguments);
if (Ext.isArray(this.formParams)) {
var form = this.up('form');
if (form) {
var bf = form.getForm();
for (var i = 0; i < this.formParams.length; i++) {
var field = bf.findField(this.formParams[i]);
if (field)
params[this.formParams[i]] = field.getValue();
}
}
}
return params;
}
});
예, 데이터 저장소의 요청에 콤보 값을 전달하면됩니다. 콤보 값을 얻을 수 있지만 서버에서 데이터 저장소로 데이터를 가져올 수는 있지만 사용자가 콤보 상자에 텍스트를 입력하기 시작하면 데이터 저장소 매개 변수를 동적으로 업데이트 할 수 없습니다. 예를 들어 사용자가 상점 재로드를 처리하기 때문에 사용자가 무언가를 클릭하면 새로운 매개 변수로 데이터 저장소를 다시로드 할 수 있지만 저장소 재로드는 아마도 콤보에 의해 처리됩니다. 나는 코드의 해당 부분을 다시 작성하지만 그것은 추한 것입니다 ... –
lapos34
다시로드 문제를 해결하려면 queryCaching : store config에 false를 추가하십시오. 또한 필자가 사용한 코드를 추가했습니다. – Marko