2013-08-09 1 views
0

У меня в настоящее время есть гигантский ui: repeat. Внутри этого ui: repeat некоторые из повторяющихся объектов имеют URL-адрес для всплывающего изображения, связанного с ними. Когда кто-то нажимает кнопку под этим конкретным объектом, мне нужно, чтобы URL-адрес отображался в диалоговом окне p:.ui: повторите со списком, отправляющим правый объект в диалог p:

<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> 

И в бэк-боб я попытался с помощью простой и присваивателя для currentImg.

Я немного запутался в этом сейчас и хотел бы выполнить это, не представив всю форму. Любая помощь приветствуется.

ответ

0

Если вы используете PrimeFaces 3.3 or newer, вы можете просто добавить partialSubmit="true" к командному компоненту. Затем вы можете управлять компонентами, подлежащими обработке, в атрибуте process. В данном конкретном случае, только текущий компонент (команда компонент сам по себе) достаточно, таким образом, так process="@this": только

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

Таким образом, параметры запроса, которые действительно необходимы для процесса будут отправлены.


Unrelated к конкретной проблеме, я предлагаю использовать oncomplete вместо onclick, чтобы открыть диалоговое окно. В противном случае диалог открывается до того, как произойдет update, что может привести к неудовлетворительной работе пользователя, так как у конечного пользователя будет мгновенно изменяться изображение.

 Смежные вопросы

  • Нет связанных вопросов^_^