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相信我,已经完成了比基本调试更多的工作。但是,是的,从一开始就创建一个新的例子可以省去很多痛苦。感谢您的时间,并承认您的观点,即创建一个最小的示例