当我单击 addTagButton 时,一切正常。它更新所有三个组件:标签、tagId 和 addTagButton。
<p:commandButton id="addTagButton" icon="ui-icon-plus"
action="#{searchBean.addTag}"
update="tags, tagId, addTagButton"
disabled="#{searchBean.tagChoices.size() == 0}">
</p:commandButton>
这是表格组件:
<h:dataTable id="tags" var="tag" value="#{searchBean.tags}">
<h:column>
<div style="text-align:right;">
<h:outputLabel value="#{tag.typeName}:"/>
</div>
</h:column>
<h:column>
<p:inputText id="tag" size="25" value="#{tag.typeValue}"
disabled="#{searchBean.searchForParent}"/>
</h:column>
<h:column>
<p:commandButton id="delTagButton" icon="pi pi-trash"
action="#{searchBean.deleteTag}"
update=":contentForm:tagId, :contentForm:addTagButton, tags">
<f:setPropertyActionListener
target="#{searchBean.tagId}"
value="#{tag.typeName}" />
</p:commandButton>
</h:column>
</h:dataTable>
当我单击标签表中每一行上的 delTagButton 时,操作正常,:contentForm:tagId 和 :contentForm:addTagButton 更新正常。但是点击命令按钮所在的标签表不会更新。
删除行时,更改必须反映在不起作用的标签表中。
现在,如果我将 h:dataTable 更改为 p:dataTable 或任何其他 primefaces 组件,它就可以工作。我正在尝试使其与 h:dataTable 一起使用。
Primefaces 8.0,JSF 2.5