Primefaces p:autocomplete在通过ajax更新父级后停止工作

Primefaces p:autocomplete在通过ajax更新父级后停止工作,primefaces,autocomplete,jsf-2.2,Primefaces,Autocomplete,Jsf 2.2,我有一个使用p:dataList呈现的自动完成列表。如下所示: <h:panelGroup layout="block" id="outerPanel"> <p:dataList rendered="#{bean.myModel.listOfItems.size()>0}" var="additionalMP" value="#{bean.myModel.listOfItems}"

我有一个使用
p:dataList
呈现的自动完成列表。如下所示:

<h:panelGroup layout="block" id="outerPanel">
    <p:dataList rendered="#{bean.myModel.listOfItems.size()>0}"
                var="additionalMP"
                value="#{bean.myModel.listOfItems}" 
                rowIndexVar="index" emptyMessage="">
         <div class="wrapper ui-g">
            <div>
              <p:autoComplete
                          cache="true"
                          value="#{bean.myModel.listOfItems[index]}"  
                          completeMethod ="#{handler.getAutoCompleteData}"
                          rendered ="true"
                          required="false"
                          scrollHeight="200"
                          styleClass="custom"
                          forceSelection="true"> 
                   <p:ajax event="query" global="false"/>    
                   <f:attribute name="filter" value="filterName" /> 
                   <f:attribute name="mode" value="edit" />                          
              </p:autoComplete>                            
             </div>
            <div>                                                    
               <p:commandLink value="+ Add" actionListener="#{bean.addAutoComplete()}" 
                    update=":formName:outerPanel"></p:commandLink>
            </div>
          </div>
     </p:dataList>
</h:panelGroup>

因此,
Add
按钮会在列表中插入一个新项目,我会更新容器面板,以便在UI上呈现新添加的项目

正如预期的那样,面板被更新,我在UI上看到另一个自动完成。但问题是,所有的自动完成现在不工作。i、 e.他们停止触发查询事件,不给出任何建议

已编辑:使用自动完成字段更新表单部分的部分响应,包含一些脚本标记,这些标记可能在page ready/load事件中执行。所以我知道,基本上新添加的prime faces小部件没有初始化


知道如何在DOM中初始化新添加的自动完成吗?

所有这些问题的原因是
javascript
中的一个错误,该错误是由于试图从bean中滚动到页面上的一个特定元素而引起的。bean中这行糟糕的代码是所有问题的根源。页面上没有id为
messages
的元素。一个突出的例子说明了为什么UI不应该以这种方式耦合

RequestContext.getCurrentInstance().scrollTo("formId:messages");

请把它做成一个盒子。并尝试了最新的PF(仅此而已),您的jsf版本和impl是什么?无法升级到最新的PF版本。这是一个维护项目不可能,你正在开发新功能是的。增强现有应用程序。但是不能升级,如果您创建一个新的JSF项目,并尝试使用PrimeFaces 6.1进行相同的升级,会怎么样?不,不是真的,也不是“唯一”。。。对我来说,还需要一个基本调试的明显例子,它总是包括创建一个。但是它工作得很好…@Kukeltje相信我,已经完成了比基本调试更多的工作。但是,是的,从一开始就创建一个新的例子可以省去很多痛苦。感谢您的时间,并承认您的观点,即创建一个最小的示例