[英]Autocomplete, load records on demand
我正在使用PrimeFaces 3.5。 我有一個自動完成功能,當用戶滾動到底部以加載更多10個結果(如果有)時,我想在搜索中加載20行。 這是我的自動完成:
<p:autoComplete rendered="#{autoCompleter.hasCompletions}" widgetVar="${id}"
id="${id}" style="position: relative"
value="#{autoCompleter.value}"
completeMethod="#{autoCompleter.suggest}"
var="s"
itemLabel="#{s.name}"
itemValue="#{s}"
converter="#{autoCompleter.converter}"
forceSelection="true"
queryDelay="500"
scrollHeight="400"
required="#{required}"
requiredMessage="#{msgs['label.address.autocompleter.required']}"
styleClass="#{required ? 'ui-input-required' : ''}"
maxResults="#{autoCompleter.maxResult}">
<p:ajax event="change"
partialSubmit="true"
update="#{update}"
onstart="if(${id}.panel.is(':visible')) return false;"/>
<p:ajax event="itemSelect"
partialSubmit="true"
update="#{update}"/>
<p:ajax event="blur"
partialSubmit="true"
update="#{update}"
disabled="true"/>
<ui:insert name="menu">
<p:column>#{s.name}</p:column>
</ui:insert>
</p:autoComplete>
並且我添加了此javascript來加載下一個結果塊:
<p:remoteCommand name="loadNextSettlementsChunk"
action="#{autoCompleter.suggest}"
update="${id}"
partialSubmit="true"
immediate="true"/>
<script type="text/javascript">
jQuery(function($) {
$('.ui-autocomplete-panel').bind('scroll', function() {
if($(this).scrollTop() + $(this).height() >= $(this)[0].scrollHeight) {
loadNextSettlementsChunk();
}
});
});
</script>
但是我沒有加載下一個結果,而是收到警告消息:
無法為結果'[Văleni(Viișoara),Viișoara,Viișoara(Todirești),Viișoara(Vaslui)]的動作'#{autoCompleter.suggest}'找到匹配的導航案例,並帶有from-view-id'/policies/index.xhtml' ,Viișoara,Viișoara,Viișoara,Viișoara,Viișoara,Viișoara,Viișoara-Moșneni,Viișoara,ViișoaraMică,Viișoara(Păunești),Viișoara(Vidra),Viișoara,Viișoara,Viișoara,Viișoara,Viișoara,Viișoara Trotuș),Viișoara,Viișoara,Vilor,Valea Viilor,Dealu Viilor,Dealu Viilor(Moșoaia),Dealu Viilor(Poiana Lacului)]和[]括號是我的結果。 如何解決此問題才能正常工作?
action
屬性必須指向一個方法,該方法調用一些業務邏輯並返回void或String ,但是方法suggest
的結果是一個ArrayList 。 因此,建議您使用actionListener
而不是action
來調用沒有導航頁面的業務邏輯。
<p:remoteCommand name="loadNextSettlementsChunk"
actionListener="#{autoCompleter.suggest}"
update="${id}"
partialSubmit="true"
immediate="true"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.