Primefaces过滤最小长度

时间:2017-04-13 09:12:10

标签: primefaces filter

PrimeFaces数据表包含多个可以过滤和排序的列。数据库包含几百万行,有文本搜索索引,但对于少于3个字符的字符串,这仍然需要比我想要的更长的时间。所以我想对少于3个字符的输入禁用过滤。 我的xml文件如下所示:

<p:column headerText=... sortBy=... filterBy=... filterMatchMode="contains">
</p:column>

是否有一个列属性可以让我对长度少于3个字符的查询禁用过滤器?

2 个答案:

答案 0 :(得分:1)

如果filterFunction=""短于3个字符,您可以创建自己的String,但不执行任何操作。

JFS

<p:column filterFunction="#{myclass.myfiltermethod}"></p:column>

public boolean myfiltermethod(Object value, Object filter, Locale locale) {
    String filterText = (filter == null) ? null : filter.toString().trim();
    if (filterText != null || filterText.length() < 3) {
        // Do nothing
    }
}

您可以在Primefaces Showcase中看到已实施的示例,尤其是Price的列。

答案 1 :(得分:0)

filterMaxLength通过使用此错误将得到解决。

> <p:column headerText=... sortBy=... filterBy=... filterMatchMode="contains" filterMaxLength ="3"> </p:column>