我想filter
属性用于<p:selectOneMenu>
,该属性具有 Units 类型的项目列表,这是一个Enum
类,如下所示:
public enum Units {
PERCENT, MILLIMETER, METER, NUMBER
}
当我将filter
与<p:selectOneMenu>
一起使用时,不会过滤任何内容。我认为这是因为列表中有单位类型的项目,我正在比较过滤器中的字符串。我是否应该使用转换器将要转换为字符串的单位项目,然后才能在筛选器中匹配它们?如果是这样,我的转换器应该如何?
我可以重现你的问题。仅当项目列表超过默认可见项目数量时,筛选器才有效。这实际上是负责创建菜单和初始化过滤器的 JavaScript 中的一个错误。你最好的选择是将其作为错误报告给PrimeFaces的人。
好的,这就是我让它工作的方式。在<p:selectOneMenu>
中添加了一个属性height="200"
。根据代码片段 SelectOneMenu,过滤器不适用于少于 10 个元素,过滤器仅在设置高度时才有效。