簡體   English   中英

自動完成,按需加載記錄

[英]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屬性必須指向一個方法,該方法調用一些業務邏輯並返回voidString ,但是方法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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM