【发布时间】:2017-04-06 07:01:50
【问题描述】:
我在一个 html 页面中有两个对话框。 ONe 列出了数据表中的所有链接。当我单击此对话框上的编辑时,会打开另一个对话框,该对话框实际上是在编辑链接。我的问题是列出所有链接的数据表没有得到更新。请帮我解决一下这个。我已经尝试了一切,但都是徒劳的。
dialog1.xhtml
<p:dialog id="selectLinkDialog" styleClass="fnp-dialog"
modal="true"
appendToBody="false"
widgetVar="selectLinkDialog">
<h:form id="selectLinkForm">
<p:dataTable id="externalLinksTable"
value="#{fnpHomeBackingBean.externalLinks}" var="model"
widgetVar="fnpHomeExternalLinksTable">
<p:column headerText="Actions">
<p:commandLink id="external-link-edit-#{index}"
value="Edit" update="editLinkDialog"
oncomplete="PF('editLinkDialog').show();
return false;">
<f:setPropertyActionListener value="#{model}"
target="#
{fnpHomeBackingBean.selectedExternalLink}" />
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
</p:dialog>
dialog2.xhtml
<p:dialog id="editLinkDialog" header="Edit External Link" modal="true"
widgetVar="editLinkDialog">
<h:form id= "editLinkForm">
<p:commandButton id="saveExternalLinkButton" value="Save"
update=":selectLinkForm:externalLinksTable"
actionListener="#{fnpHomeBackingBean.saveExternalLink()}">
</p:commandButton>
</h:form>
</p:dialog>
【问题讨论】:
-
您是否 100% 确定您通过
update=":editExternalLinksForm:fnpHomeExternalLinksTable"正确引用了其他数据表? -
是的。有什么不对? hv 在这个上花了太多时间...请帮助
-
我不知道,因为这是代码 sn-ps,只有 你 可以知道是否还有另一个命名容器。与
update="editExternalLinkDialog"相反的更新也很奇怪,因为它实际上是在另一个命名容器中,所以我希望你确实需要通过它前面的:绝对引用它。 -
基本上剩下的代码结构如下:
欢迎
-
这很奇怪,无法解释那个错误。请编辑您的问题并创建一个minimal reproducible example.. 顺便说一句,使用几乎相同的 id(只是一个 's' 的区别)容易出错(至少对于我们阅读来说也是如此)。使用“selectLinkDialog”和“editLinkDialog”之类的东西更明确
标签: jsf primefaces datatable updates