ExtJS ComboBox触发器动作:"全部"真的有用吗?

Ren*_*soo 22 javascript combobox extjs

我试图创建一个简单的ComboBox:

var combo1 = new Ext.form.ComboBox({
  store: [1,2,3],
  renderTo: document.body
});
Run Code Online (Sandbox Code Playgroud)

但是以这种方式编写它的行为很奇怪:

  • 当您第一次弹出下拉菜单时,它提供了三种选择.
  • 你选择一个.
  • 但是当您尝试更改选择后,下拉菜单只提供一个选项 - 您之前选择的选项.

我将我的代码与Ext主页上的示例进行了比较,发现添加triggerAction: "all"解决了我的问题:

var combo2 = new Ext.form.ComboBox({
  triggerAction: "all",
  store: [1,2,3],
  renderTo: document.body
});
Run Code Online (Sandbox Code Playgroud)

ExtJS文档triggerAction并没有告诉我很多:

单击触发器时要执行的操作.使用'all'运行allQuery配置选项指定的查询(默认为'query')

我没有指定allQuery选项.实际上,我根本不想对服务器执行查询.

triggerAction真的是什么呢?

"all"当我只想要一个简单的静态组合框时,它是否真的应该做到这一点?

Bri*_*kau 23

选择项目后,将过滤列表以匹配当前文本值.在您的情况下,它始终是所选的值,但对于多字符值更明显(请参阅Ext中的状态名称示例).如果删除所选值,则下拉列表将返回到具有所有值. triggerAction:'all'表示不过滤,始终显示所有值.

  • 这是有道理的,但这是一个非常糟糕的选择! (3认同)