【问题标题】:Changing the component type on an ajax update在 ajax 更新时更改组件类型
【发布时间】:2012-10-16 19:08:59
【问题描述】:

我的表单上有一个组件 (id="theDocument"),我想在某些情况下以不同的方式呈现。

如果 'myBean.theDocument' 存在,我希望它呈现为 p:commandLink,但如果它不存在,我希望它呈现为纯文本,例如h:outputText.

文件上传后这个条件会改变(上传后myBean.theDocument会存在,所以我希望它呈现为p:commandLink)。

所以在我的p:fileUpload上,我有这样的东西:

<p:fileUpload fileUploadListener="#{myBean.handleFileUpload}" update="theDocument">  

我一直在使用 render="...",并且 update 可以很好地刷新现有组件的值。但是如何在 ajax 更新后更改组件的 type (或者我是否需要刷新整个页面并决定以更一般的方式呈现为文本或链接? p>

谢谢

【问题讨论】:

  • 如果我的问题不清楚,请告诉我,我会尽力澄清:正在努力想出正确的词语来解释我的问题...

标签: ajax jsf-2 primefaces


【解决方案1】:

只需在一个公共父级中有两个条件渲染组件并更新公共父级。

<h:panelGroup id="theDocument">
    <p:commandLink ... rendered="#{not empty myBean.theDocument}" />
    <h:outputText ... rendered="#{empty myBean.theDocument}" />
</h:panelGroup>

【讨论】:

    猜你喜欢
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多