【问题标题】:ui:repeat with a list sending right object to a p:dialogui:repeat 使用列表将正确的对象发送到 p:dialog
【发布时间】:2013-08-09 19:08:05
【问题描述】:

我目前有一个巨大的 ui:repeat。在这个 ui:repeat 中,一些重复的对象有一个与它们关联的弹出图像的 url。当有人点击该特定对象下的显示时,我需要在 p:dialog 中弹出 url。

<ui:repeat var="thing" value="#{bean.thingList}">
    <p:commandLink value="details" onclick="miniImage.show();" 
    update=":#{p:component('chart')}"
    action="#{bean.setCurrentImg(thing.imageUrl)}" 
    rendered="#{thing.includeImage}">
</p:commandLink>
</ui:repeat>

在页面底部:

<p:dialog id="chart" widgetVar="miniImage" >
    <h:graphicImage value="#{bean.currentImg}"/>
</p:dialog>

在支持 bean 中,我尝试对 currentImg 使用简单的 setter 和 getter。

我现在对此有点困惑,并且想在不必提交整个表单的情况下完成此操作。非常感谢任何帮助。

【问题讨论】:

    标签: jsf primefaces dialog commandlink


    【解决方案1】:

    如果您使用PrimeFaces 3.3 or newer,您只需将partialSubmit="true" 添加到命令组件即可。然后您可以在process 属性中控制要处理的组件。在这种特殊情况下,仅当前组件(命令组件本身)就足够了,因此process="@this"

    <p:commandLink ... process="@this" partialSubmit="true" />
    

    这样只会发送流程真正需要的请求参数。


    与具体问题无关,我建议使用oncomplete而不是onclick打开对话框。否则对话框会在update 发生之前打开,可能会导致用户体验不佳,因为最终用户会看到图像立即发生变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多