2015-12-02 61 views
0

我正在使用primefaces 3.4,JBoss EAP 6.3,Java 1.7.0_79,JSF 2.0。Primefaces selectOneMenu不會將列表滾動到鍵入的字符

<p:selectOneMenu 
    id="comboPais" 
    value="#{requerenteEditarMB.bean.requerente.paisNascimento}" 
    style="width:200px" 
    var="e" 
    converter="omnifaces.SelectItemsConverter" 
    effect="fade"> 
    <f:selectItem 
     itemValue="" 
     itemLabel="#{messages['objeto.selecione.label']}" /> 
    <f:selectItems 
     value="#{requerenteEditarMB.paisesLocalNascimento}" 
     var="pais" 
     itemValue="#{pais}" 
     itemLabel="#{pais.nome}" /> 
    <p:column> 
     <h:outputLabel 
      value="#{e.nome}" 
      styleClass="#{e.ativo ? '' : 'statusInativo'}" /> 
    </p:column> 
    <a4j:ajax 
     event="change" 
     execute="prenome sobrenome dataNascimento comboPais " 
     listener="#{requerenteEditarMB.contarPessoasSemelhantesRequerente}" 
     render="qtdeSemelhantes"> 
    </a4j:ajax> 
</p:selectOneMenu> 

此列表擁有200多條記錄。例如,當我輸入字符「e」時,我預計列表將滾動到名稱以「e」開頭的第一個國家,而是自動選擇名稱以「e」開頭的第一個國家,並且該列表不會「 t捲起來。 Current behavior Expected behavior

+0

結合了'號碼:selectOneMenu'用'A4J:ajax'是非常,非常罕見。 – Kukeltje

回答

1

好吧,首先要做的事情是:您應該嘗試遷移到PF 5.3。它包含許多修補程序和新的功能。

您的選擇不會滾動,因爲您正在使用列的自定義渲染,這會阻止滾動。
您可能想使用過濾器。查看PrimeFaces用戶指南。

從文檔:

過濾時與上,輸入字段以覆蓋頭呈現和 keyup事件過濾是使用filterMatchMode在客戶端執行的設置過濾器啓用。默認模式 filterMatchMode是startsWith,contains,endsWith和custom。自定義模式需要使用javascript 函數進行過濾。

<p:selectOneMenu value="#{bean.selectedOptions}" 
filterMatchMode="custom" filterFunction="customFilter"> 
<f:selectItems value="#{bean.options}" /> 
</p:selectOneMenu> 

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

遷移不是一種選擇,並且添加過濾器不是您客戶想要的。所以,你的第二個陳述回答了我需要知道的東西,ty。 –

相關問題