Ext JS Combo。过滤时保持扩展

时间:2016-05-22 16:11:01

标签: javascript events extjs combobox extjs6-classic

我有一个2字段组合,本地商店正在从外面装载mannualy。 当我输入并过滤时,我希望这个组合处于展开状态。

我已使用过滤器设置了侦听器。过滤器工作正常。

 this.listeners = {
        beforequery: function(queryPlan){
            me.store.clearFilter(true);
            me.store.filter(filter);
            return true;
        }
    };

问题是,当我开始输入组合时,有时它会在输入第一个字母后打开,然后即使有要显示的过滤值也会折叠。我必须按下键才能看到已过滤的列表。

但是如果我通过退格键删除字符 - 它会一直打开 - 实际上这就是我需要的。

我知道事件链有一些技巧,但无法准确得到如何。 手动调用combo.expand()无效。 如果我有typeAhead = true或者我没有,那就没有意义了。 可能这是因为我使用displayTpl而不是displayField。

任何想法? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

不确定它是否是最佳解决方案,但您可以getPicker() combo并添加show / hide相关事件处理程序,并在其中隐藏/显示自定义逻辑({{1}例如,或任何其他符合你逻辑的。)

beforehide

组合选择器组件为Ext.view.Boundlist,因此在你的控制器中,这样的东西也应该起作用:

combo.getPicker().on(
    'beforehide',
    function() {
        // Your hide logic here
    }
);

Fiddle