我有一个数据表,在最后一列我将进行编辑操作,它将触发对话框。但是,我发现对话框中的值未更新。有人可以帮忙吗?
我的代码如下。事实上,bean.currentItem.name和bean.currentItem.age应该基于我从表中的选择。我检查bean.currentItem不是null并且从preEdit方法引用我的选择,但是值永远不会出现在p:dialog中。
<p:dataTable ....>
<p:column...
<p:column...
<p:column>
<f:facet name="header">
<h:outputLabel value="Update" />
</f:facet>
<p:remoteCommand name="preEdit" action="#{bean.preEdit}"
process="@this" update="@this @form:dlg">
<f:setPropertyActionListener target="#{bean.currentItem}"
value="#{thisItem}" />
</p:remoteCommand>
<p:commandLink styleClass="no-decor"
oncomplete="preEdit();PF('dlg').show();" value="Edit"/>
</p:column>
</p:dataTable>
<p:dialog header="#{lbl.tt_cat_upd}" widgetVar="dlg" id="dlg"
resizable="false" >
<h:outputLabel value="#{bean.currentItem.name}" />
<h:outputLabel value="#{bean.currentItem.age}" />
</p:dialog>
答案 0 :(得分:0)
如何删除p:remoteCommand
并让p:commandLink
为您完成所有工作?
假设您h:form
和dataTable
dialog
<p:commandLink action="#{bean.preEdit}" process="@this" update="dlg" styleClass="no-decor" oncomplete="PF('dlg').show()" value="Edit">
<f:setPropertyActionListener target="#{bean.currentItem}"
value="#{thisItem}" />
</p:commandLink>
如果您的dataTable
与dialog
的格式不同,则可以update="dlg"
替换update=":formIdContainingDialog:dlg"