无法从 p:commandLink 'update' 更新组件属性,链接存在于 p:dataTable 中

发布于 2024-12-05 02:38:57 字数 746 浏览 0 评论 0 原文

<p:dataTable id="id" value="#{bean.soemList}" var="account">
    <p:commandLink value="#{account.id}" action="#{bean.methodCall}" 
        update="dialogID" oncomplete="dlg1.show();">
    </p:commandLink>

...

<p:dialog header="#{i18n.details}" widgetVar="dlg1" modal="true" height="200" width="600">
    <h:panelGroup id="dialogID" layout="block">
        <h:outputLabel value="#{bean.var1}"></h:outputLabel>
    </h:panelGroup>
</p:dialog>

当链接位于 p:dataTable 外部时,p:dialog 会更新,但当链接位于 p:dataTable 中时,< code>p:dialog 不显示更新的值。我需要将链接保留在 p:dataTable 中。要更新的组件不在 dataTable 中。

<p:dataTable id="id" value="#{bean.soemList}" var="account">
    <p:commandLink value="#{account.id}" action="#{bean.methodCall}" 
        update="dialogID" oncomplete="dlg1.show();">
    </p:commandLink>

...

<p:dialog header="#{i18n.details}" widgetVar="dlg1" modal="true" height="200" width="600">
    <h:panelGroup id="dialogID" layout="block">
        <h:outputLabel value="#{bean.var1}"></h:outputLabel>
    </h:panelGroup>
</p:dialog>

p:dialog gets updated when the link is outside p:dataTable, but when the link is placed in p:dataTable, p:dialog doesnt show updated value. I need to keep the link in p:dataTable.The component to be updated is not in dataTable.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叫嚣ゝ 2024-12-12 02:38:57

我只能在数据表中获取 更新对话框的组件(如果该对话框的元素位于其自己的内) >

示例:

<p:dialog appendToBody="true" ...>
  <h:form id="dialogForm" ...>
    ...
  </h:form>
</p:dialog>

<p:dataTable ...>
  <h:form id="dataTableForm" ...>
    ...
  </h:form>
</p:dataTable>

另请注意,我向对话框添加了属性 appendToBody="true"。这对于在 AJAX 更新后通过 id 定位对话框非常重要。

I have only been able to get a <p:commandLink> within a dataTable to update a component of a dialog if the elements of that dialog were within their own <h:form>.

Example:

<p:dialog appendToBody="true" ...>
  <h:form id="dialogForm" ...>
    ...
  </h:form>
</p:dialog>

<p:dataTable ...>
  <h:form id="dataTableForm" ...>
    ...
  </h:form>
</p:dataTable>

Also note that I added to the dialog the attribute, appendToBody="true". This is important for locating the dialog by id after an AJAX update.

能怎样 2024-12-12 02:38:57

您好,您是否尝试按如下方式附加表单 ID

<form id="myformid">
.....
    <p:commandLink value="#{account.id}" action="#{bean.methodCall}" update=":myformid:dialogID" oncomplete="dlg1.show();">
    </p:commandLink>
....
<p:dialog header="#{i18n.details}" widgetVar="dlg1" modal="true"
        height="200" width="600">
        <h:panelGroup id="dialogID" layout="block">
        <h:outputLabel value="#{bean.var1}"></h:outputLabel>
....
</form>

希望它有帮助!

Hi did you try to append the form id as follows

<form id="myformid">
.....
    <p:commandLink value="#{account.id}" action="#{bean.methodCall}" update=":myformid:dialogID" oncomplete="dlg1.show();">
    </p:commandLink>
....
<p:dialog header="#{i18n.details}" widgetVar="dlg1" modal="true"
        height="200" width="600">
        <h:panelGroup id="dialogID" layout="block">
        <h:outputLabel value="#{bean.var1}"></h:outputLabel>
....
</form>

Hope it helps !

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文