我有一个2字段组合,本地商店正在从外面装载mannualy。 当我输入并过滤时,我希望这个组合处于展开状态。
我已使用过滤器设置了侦听器。过滤器工作正常。
this.listeners = {
beforequery: function(queryPlan){
me.store.clearFilter(true);
me.store.filter(filter);
return true;
}
};
问题是,当我开始输入组合时,有时它会在输入第一个字母后打开,然后即使有要显示的过滤值也会折叠。我必须按下键才能看到已过滤的列表。
但是如果我通过退格键删除字符 - 它会一直打开 - 实际上这就是我需要的。
我知道事件链有一些技巧,但无法准确得到如何。 手动调用combo.expand()无效。 如果我有typeAhead = true或者我没有,那就没有意义了。 可能这是因为我使用displayTpl而不是displayField。
任何想法? 提前谢谢。
答案 0 :(得分:0)
不确定它是否是最佳解决方案,但您可以getPicker()
combo
并添加show / hide相关事件处理程序,并在其中隐藏/显示自定义逻辑({{1}例如,或任何其他符合你逻辑的。)
beforehide
组合选择器组件为Ext.view.Boundlist
,因此在你的控制器中,这样的东西也应该起作用:
combo.getPicker().on(
'beforehide',
function() {
// Your hide logic here
}
);