我刚刚打了另一个帖子,中途我发现了我的问题。让我们看看它是否会再次发生。
如果选择了给定的下拉列表,我需要能够更新另一个下拉列表。我的问题是第二次没有加载二次下拉;页面上没有任何反应。如果用户第二次选择相同的元素,那么一切正常。
我以编程方式生成了一堆ComboBox:
var item = new Ext.form.ComboBox({
store: store,
id: input.id,
name: input.id,
displayField: 'description',
valueField: 'id',
mode: 'local',
forceSelection: true,
triggerAction: 'all',
emptyText: 'Select one...',
typeAhead: false,
editable: true,
allowBlank: allowBlank,
selectOnFocus:true,
fieldLabel: input.label,
listeners: {
scope: this,
'select': checkDependencies
},
autoHeight: true
});
当我尝试更新从属下拉列表时出现问题。以下是用户选择选项时调用的函数:
function checkDependencies(el, ev){
debug(el);
debug(el.value);
var val = el.value;
if (Ext.isArray(dependencies[val])) {
var id = dependencies[val]['changeId'];
var input = Ext.getCmp(id);
var vals = dependencies[val]["vals"];
input.store.removeAll();
gridForm.doLayout();
debug("num elements: " + vals.length);
input.autoHeight = true;
for (var i=0;i<vals.length;i++) {
input.store.add(vals[i]);
}
gridForm.doLayout(false,true);
}
}
它命中所有调试行。列表中有元素,但就像我说的那样,用户第一次选择元素时它不起作用,但后续选择工作正常。
我最终将doLayouts放在了eveywhere,但它似乎没有帮助。
答案 0 :(得分:2)
尝试在辅助邮箱中设置queryMode: 'local'
,并在checkDependencies
中设置input.lastQuery = ''
。