【发布时间】:2015-01-14 15:02:13
【问题描述】:
我正在使用 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>
但我没有加载下一个结果,而是收到警告消息:
无法找到与 from-view-id 匹配的导航案例 '/policies/index.xhtml' 用于操作 '#{autoCompleter.suggest}' 结果'[Văleni (Viişoara), Viişoara, Viişoara (Todireşti), Viişoara (瓦斯路伊), 维伊什瓦拉, 维伊什瓦拉, 维伊什瓦拉, 维伊什瓦拉, 维伊什瓦拉, 维伊什瓦拉, Viişoara-Moşneni, Viişoara, Viişoara Mică, Viişoara (Păuneşti), 维伊什瓦拉 (Vidra), 维伊什瓦拉, 维伊什瓦拉, 维伊什瓦拉, 维伊什瓦拉, 维伊什瓦拉 (Ștefan cel Mare), Viişoara (Târgu Trotuş), Viişoara, Viişoara, Viilor, Valea Viilor, Dealu Viilor, Dealu Viilor (Moşoaia), Dealu Viilor (Poiana Lacului)]' 和 [] 括号中是我的结果。如何 解决这个问题以使其正常工作?
【问题讨论】:
标签: javascript jquery jsf primefaces autocomplete