如何在rich:autoComplete中点击按钮显示所有项目?

时间:2012-12-28 06:06:21

标签: jsf-2 autocomplete combobox richfaces

Richfaces 4: 我使用rich:autoComplete,将属性showButton设置为“true”,如下所示:

<rich:autocomplete mode="client" value="#{backingBean.selectedType}"
  autocompleteList= "#{backingBean.availableTypes}" 
  showButton="true">
</rich:autocomplete>

目前,它会将过滤后的值显示为用户输入内容作为建议。此外,点击按钮时,它仅显示过滤值。

我需要显示可用类型的完整列表,无论用户在单击按钮时在textBox中输入了什么。但是,键入文本框应该过滤结果。这种行为早先出现在richfaces 3.3组合框中,但不知何故,在Richfaces 4中,它似乎缺失了。

有人知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

这是一个老问题,我认为RF 4.5.2可以选择更好的行为,但如果有人发现自己在RF 4.3中遇到这种情况,我们可以通过修改来解决这个问题richfaces-components-ui-4.3.7.Final.jar中的AutoComplete.js:

rf.getDomElement(this.fieldId).focus();
if (this.isVisible) {
    this.__hide(event);
} else {
    var newItems = this.cache.getItems('', this.options.filterFunction);
    this.items = $(newItems);
    $(rf.getDomElement(this.id + 'Items')).empty().append(this.items);
    onShow.call(this, event);
}

else子句的前三行是new,导致在单击下拉按钮时显示整个列表。否则,组件过滤的工作方式相同。 (这是在客户端模式下。我还没有尝试过其他选项。)

我在从源代码构建项目时遇到了麻烦,但是为此需要解压缩jar文件,替换js,然后重新装箱。