22

我试图创建一个简单的组合框:

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

但是这样写它的行为很奇怪:

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

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

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

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

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

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

那么这到底有什么作用triggerAction呢?

当我只想要一个简单的静态组合框时,是否将其设置为"all"我应该做的事情?

4

1 回答 1

23

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

于 2009-06-12T19:49:28.503 回答