Javascript ExtJS组合。过滤时保持扩展
我有一个2字段的组合,本地存储从外部手动加载。 我希望在键入和筛选时此组合处于展开状态 我已经用过滤器设置了侦听器。过滤器工作正常Javascript ExtJS组合。过滤时保持扩展,javascript,events,extjs,combobox,extjs6-classic,Javascript,Events,Extjs,Combobox,Extjs6 Classic,我有一个2字段的组合,本地存储从外部手动加载。 我希望在键入和筛选时此组合处于展开状态 我已经用过滤器设置了侦听器。过滤器工作正常 this.listeners = { beforequery: function(queryPlan){ me.store.clearFilter(true); me.store.filter(filter); return true; } }; 问题
this.listeners = {
beforequery: function(queryPlan){
me.store.clearFilter(true);
me.store.filter(filter);
return true;
}
};
问题是,当我开始在组合框中输入时,有时它会在输入第一个字母后打开,然后折叠,即使有要显示的过滤值。我必须按下向下键才能看到过滤后的列表
但是如果我用退格键删除字符-它一直处于打开状态-实际上这就是我需要的
我了解事件链有一些技巧,但无法确切了解如何使用。
手动调用combo.expand()无效。
如果我有typeAhead=true或没有,则没有意义。
这可能是因为我使用displayTpl而不是displayField
有什么想法吗?
提前感谢。不确定这是否是最佳解决方案,但您可以将
组合的getPicker()
添加到其中,并使用其中的隐藏/显示自定义逻辑(例如,beforehide
或任何其他适合您的逻辑)向其添加与显示/隐藏相关的事件处理程序
Combo picker组件是,因此在您的控制器中,类似这样的组件也应该工作:
不确定它是否是最佳解决方案,但您可以将组合的getPicker()
添加到其中,并使用其中的隐藏/显示自定义逻辑(例如,beforehide
或任何其他适合您的逻辑)向其添加与显示/隐藏相关的事件处理程序
Combo picker组件是,因此在您的控制器中,类似这样的组件也应该工作:
这是我的解决方案。我在活动前做这件事。在这种情况下,我可以过滤存储。但问题是过滤后它不能扩展。。。如果我想要过滤器,我需要清除该组合的值。这是我的解决方案。我在活动前做这件事。在这种情况下,我可以过滤存储。但问题是过滤后它不能扩展。。。若我想要过滤器,我需要清除该组合的值
combo.getPicker().on(
'beforehide',
function() {
// Your hide logic here
}
);
init: function () {
this.control({
'combo[name=myCombo] boundlist': {
beforehide: this.myHandler
}
});
}