PrimeFaces自动完成使用moreText扩展maxResults

PrimeFaces自动完成使用moreText扩展maxResults,primefaces,autocomplete,Primefaces,Autocomplete,我有一个带有maxResult和moreText属性的自动完成 XHTML 我想要的是结果列表扩展为额外的50行。它确实是这样工作的,但我的问题是,在单击moreText行后,结果列表隐藏了。当我再次搜索时,我会得到一个100,150。。。结果 如何在单击“显示更多结果”后立即扩展结果列表?通过添加此代码,我找到了一个适合我需要的解决方案 <p:autoComplete widgetVar="widgetVarName" completeMethod="#{bean.complete}"&

我有一个带有
maxResult
moreText
属性的自动完成

XHTML

我想要的是结果列表扩展为额外的50行。它确实是这样工作的,但我的问题是,在单击
moreText
行后,结果列表隐藏了。当我再次搜索时,我会得到一个100,150。。。结果


如何在单击“显示更多结果”后立即扩展结果列表?

通过添加此代码,我找到了一个适合我需要的解决方案

<p:autoComplete widgetVar="widgetVarName" completeMethod="#{bean.complete}">
    <p:ajax event="moreText" listener="#{bean.onMoreText}" />
</p:autoComplete>

public List<ResultType> complete(String qry) {
    setQryString(qry);
    // code to get results;
}

public void onMoreText(javax.faces.event.AjaxBehaviorEvent event) {
    org.primefaces.component.autocomplete.AutoComplete ac = (AutoComplete) event.getSource();
    ac.setMaxResults(ac.getMaxResults() + 30);
    executeJS("PF('widgetVarName').search('" + getQryString() + "')");
}

public void executeJS(String source) {
    org.primefaces.context.RequestContext.getCurrentInstance().execute(source);
}

公共列表完成(字符串qry){
设置qrystring(qry);
//获取结果的代码;
}
MORETEXT上的公共void(javax.faces.event.AjaxBehaviorEvent事件){
org.primefaces.component.autocomplete.autocomplete ac=(autocomplete)event.getSource();
ac.setMaxResults(ac.getMaxResults()+30);
executeJS(“PF('widgetVarName').search(“+getQryString()+”)”);
}
public void executeJS(字符串源){
org.primefaces.context.RequestContext.getCurrentInstance().execute(源代码);
}
现在的情况是,单击moreText行后,suggestionList将隐藏,maxResults将增加,新的搜索将从completeMethod使用的QRysting开始


如果有人有更好的解决方案,请随时与我们分享,因为我当前的解决方案是一个糟糕的解决方案,它会调用一个新的数据库来选择已经传输的数据。

也许在ajax调用的oncomplete中,假惺惺地单击下拉列表?我没有用于此自动完成的下拉按钮,请尝试假惺惺地单击输入。。。抱歉…从上一次编辑中创建了答案。
public void onMoreText(AjaxBehaviourEvent event) {
    AutoComplete ac = (AutoComplete)event.getSource();
    ac.setMaxResults(ac.getMaxResults() + 50);
}
<p:autoComplete widgetVar="widgetVarName" completeMethod="#{bean.complete}">
    <p:ajax event="moreText" listener="#{bean.onMoreText}" />
</p:autoComplete>

public List<ResultType> complete(String qry) {
    setQryString(qry);
    // code to get results;
}

public void onMoreText(javax.faces.event.AjaxBehaviorEvent event) {
    org.primefaces.component.autocomplete.AutoComplete ac = (AutoComplete) event.getSource();
    ac.setMaxResults(ac.getMaxResults() + 30);
    executeJS("PF('widgetVarName').search('" + getQryString() + "')");
}

public void executeJS(String source) {
    org.primefaces.context.RequestContext.getCurrentInstance().execute(source);
}