首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Primefaces selectCheckBoxMenu filter=“filter=”属性不起作用

Primefaces selectCheckBoxMenu filter=“filter=”属性不起作用
EN

Stack Overflow用户
提问于 2013-08-16 20:08:58
回答 1查看 3K关注 0票数 2

我使用的是primefaces3.5,我想使用selectCheckBoxMenu组件。实际上,我处理这个组件的很多属性,但是我有一个很大的列表,我愿意用lazy获取这个列表,而这个组件不包括lazy属性。因此,我决定使用自定义“filter=”和filterFunction属性来过滤我的列表。

下面是我的代码:

代码语言:javascript
复制
<p:selectCheckboxMenu id="personelListesiCheckBoxId"
                                      value="#{gidenKutusuController.secilenKullaniciListesi}"
                                      converter="#{personelConverter}"
                                      label="#{gidenKutusuController.personelLabel}"
                                      filter="true"
                                      filterMatchMode="custom"
                                      filterFunction="customFilter"
                                      panelStyle="width:220px">
                    <p:ajax event="toggleSelect" process="@this"
                            onstart="personelGetir();"/>
                    <p:ajax event="change"
                            process="@this"
                            listener="#{gidenKutusuController.listenerPersonelSecildi()}"
                            update="@this"/>
                    <f:selectItems value="#{gidenKutusuController.personelListesi}" var="personel"
                                   itemLabel="#{personel.adi} #{personel.soyadi}"
                                   itemValue="#{personel}"/>
                </p:selectCheckboxMenu>
                <p:remoteCommand process="@this"
                                 action="#{gidenKutusuController.listenerPersonelSecildi()}"
                                 name="personelGetir"
                                 update=":form:personelListesiCheckBoxId"/>
                <p:remoteCommand process="@this"
                                 action="#{gidenKutusuController.listenerPersonelListesiLazyGetirByFilter()}"
                                 name="personelListesiniGetirByFilter"
                                 update="@this"/>

和下面的java脚本代码:

代码语言:javascript
复制
<script type="text/javascript">
    function customFilter(itemLabel, filterValue) {
        personelListesiniGetirByFilter({fv: filterValue});
    }
</script>

我想做的是,当用户键入过滤器时,我获得该值并用该值查询数据库并获取列表,并将列表设置为selectCheckBoxMenu component.To。这样做,我使用filterMatchMode=“component.To”和filterFunction=" customFilter“来获得键入的值,然后通常当用户键入时,必须调用customFilter java脚本函数,它不工作。

我不知道如何解决这个问题。请帮帮我。

这是primefaces 3.5指南

代码语言:javascript
复制
<p:selectCheckboxMenu value="#{bean.selectedOptions}" label="Movies"
             filterMatchMode="custom" filterFunction="customFilter">
             <f:selectItems value="#{bean.options}" />
</p:selectCheckboxMenu>


function customFilter(itemLabel, filterValue) {
     //return true to accept and false to reject
}
EN

回答 1

Stack Overflow用户

发布于 2015-12-21 05:28:21

代码不能工作的原因是filterFunction需要在bean中实现一个函数:nameOfYourCustomFunction(对象值、对象过滤器、区域设置)。例如,看看PrimeFaces "ContainsFilterConstraint.java“类是如何实现的。另外,请看我在这个问题中的回答,以便让您的selectCheckboxMenu过滤器真正工作:https://stackoverflow.com/a/34383835/4145964

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18273019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档