嗨我有两个组合框,即..
AcademicClass
{
xtype : 'combobox',
emptyText : 'Academic Class',
displayField : 'name',
id:'comboacademicclass',
valueField : 'id',
store:classstore,
triggerAction:'all',
mode:'local',
listeners : {
'select' : {
fn: function(combo1, value) {
var comboSubject=Ext.getCmp('combo-subject');
var classId=Ext.getCmp('comboacademicclass').getValue();
comboSubject.setDisabled(true);
comboSubject.setValue('');
comboSubject.getStore().removeAll(true);
comboSubject.getStore().load({url:'http://localhost:8080/WebService/rest/type/academicSubjectByClass/'+classId+'.json'});
// Using this loading data in second combobox by passing first combobox Id.:- 'classId'.
comboSubject.setDisabled(false);
}
}
}
}
AcademicSubject :
{
xtype : 'combobox',
emptyText : 'Academic Subject',
id:'combo-subject',
displayField : 'name',
valueField : 'id',
disabled:true,
store:subjectstore,
triggerAction:'all',
mode:'local'
,lastQuery:''
}
它仅显示输出第一次选择,但在第二次选择时它只显示“正在加载”而不是显示输出。请帮助。
答案 0 :(得分:1)
你应该听一下select
或change
事件的AcademicClass上的AcademicSubject组合,并激活听力组合。您还将获得所选值,并可以为激活组合准备查询。你可以这样做
combobox.queryData = [{ property: 'fieldName', value: value}];
combobox.reset();
combobox.doQuery(combobox.queryData);
其中combobox
是对激活的组合(AcademicSubject)的引用,value
是来自AcademicClass组合的属性值。要确保使用新查询,请使用
combobox.on('beforequery', function (e) {
e.query = e.combo.queryData;
});
请注意:
对于上面的代码段,我建议使用queryParam: 'filter'
,这样您就可以使用默认的服务器端过滤器行为,而无需引入新的参数。