0

我目前有一个巨大的 ui:repeat。在这个 ui:repeat 中,一些重复的对象有一个与它们关联的弹出图像的 url。当有人单击该特定对象下的显示时,我需要在 ap: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。

我现在对此有点困惑,并且想在不必提交整个表单的情况下完成此操作。任何帮助是极大的赞赏。

4

1 回答 1

0

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

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

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


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

于 2013-08-09T19:25:11.990 回答