RichFaces - используя один и тот же actionParameter с двумя братьями под одной сеткой - PullRequest
1 голос
/ 15 февраля 2010

У меня есть сетка панели с объектом поддержки с расширенными гранями и под этим объектом параметра действия.

<h:PanelGrid id="button" value="button1">
 |
 \-<a4j:support event="onclick" action="#{bean.doSomething}" >
 |       |
 |       \-<a4j:actionParameter value="1" assignTo="#{bean.currentlySelected}">
 |
 \-<a4j:ContextMenu>
    |
    \<menuItem .. DoSomethingWithSelectedButton ...>

Идея - кнопка с действием для левого щелчка и контекстным меню для правого щелчка.

Параметр action позволяет тегу поддержки узнать, какая кнопка (панель сетки) выбрана, и выполнить действие над ним в компоненте поддержки.

Я хочу сделать то же самое для контекстного меню. значение - используйте «nowSelected», чтобы решить, в какой кнопке использовалось contextMenu. Но «nowSelected» устанавливается только при нажатии кнопки, а не по пунктам меню в контекстном меню.

Я пытался добавить существующий actionParam в качестве EventListener для элемента меню, но это не сработало. Другое решение, о котором я подумал, - создать новый actionParam для каждого элемента меню, но это выглядит как пустая трата ресурсов.

Я ищу подсказку о «умном» или «правильном» способе сделать это.

Спасибо !!!

1 Ответ

1 голос
/ 16 февраля 2010

Попробуйте

<rich:menuItem ..>
    <a4j:support .. >
         <f:setPropertyActionListener target="#{bean.current}" value="1" />
    </a4j:support>
</rich:menuItem>
...