我想在一个覆盖面板中展示一张键值对的列表,其中每个键值对为一行。当点击一个键值对时,我希望更新一个位于覆盖面板外部的
我刚从PF 4.0迁移到PF 6.1,现在遇到了一个问题:每当我在覆盖面板内使用update-attribute时,它似乎是空的,没有显示任何内容。
以下是一个代码示例:
<p:inputText>
元素,并将所选行的键值同时关闭覆盖面板。我刚从PF 4.0迁移到PF 6.1,现在遇到了一个问题:每当我在覆盖面板内使用update-attribute时,它似乎是空的,没有显示任何内容。
以下是一个代码示例:
<p:inputText
id="inputPvId"
styleClass="form_input"
readonly="true"
value="#{bean.selectedValue.get(0)}" />
<p:commandButton
icon="ui-icon-link"
id="selectValue"
value="#{msg_properties.chooseValue}" />
<p:overlayPanel
for="selectValue"
id="overlayValueSelector"
widgetVar="overlayValueSelector
dynamic="true"
styleClass="form_input_widest">
<p:dataTable
var="car"
value="#{dtBasicView.cars}">
<p:column
headerText="Id">
<h:outputText
value="#{car.id}" />
</p:column>
<p:column
headerText="Year">
<h:outputText
value="#{car.year}" />
</p:column>
<p:ajax
event="rowSelect"
update=":form:inputPvId,:form:myTable"
onsuccess="PF('overlayPV').hide()" />
</p:dataTable>
以前它是那样工作的。我改变的只是小部件从"overlayPV".hide()
到"PF('overlayPV').hide()"
被调用的方式,这是官方迁移指南建议的方式。如果在ajax调用中取消update=":form:inputPvId,:form:myTable"
行,内容会正确显示。
我做错了什么吗?我的研究表明,其他人也遇到了覆盖面板和ajax更新的麻烦。然而,我没有找到适合我的问题的解决方案。
我尝试使用datatable的"onRowClick
"属性与widgetHide调用,如下所示:
<p:dataTable
onRowClick="PF('overlayPV').hide()" />
这段代码可以正常运行,但是我不知道如何更新所选值的 <p:inputText>
元素。我必须刷新页面才能显示新的值。如果有人能提供解决方法,我将不胜感激。谢谢。