我正在使用primefaces 3.5,我想使用selectCheckBoxMenu组件。实际上,我处理这个组件的很多属性,但我有很大的列表,我愿意得到这个懒惰的列表,这个组件不包括惰性属性。因此,我决定使用filter =“custom”和filterFunction属性来过滤我的列表。
这是我的代码:
<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脚本代码:
<script type="text/javascript">
function customFilter(itemLabel, filterValue) {
personelListesiniGetirByFilter({fv: filterValue});
}
</script>
我想在用户输入过滤器时这样做,我得到该值并使用该值查询数据库并获取列表并将列表设置为selectCheckBoxMenu组件。为此, 我使用filterMatchMode =“custom”和filterFunction =“customFilter”来获取类型化值,然后通常当用户键入时,必须调用customFilter java脚本函数,它不起作用。
我不知道如何解决这个问题。请帮帮我。
这是主要的3.5指南
<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
}