Richfaces: ссылочный текст с ContextMenu - PullRequest
5 голосов
/ 07 февраля 2011

Я хочу сделать с помощью Richfaces контекстное меню, если щелкнуть левой кнопкой мыши на тексте, отображающем ссылку (синий текст, подчеркивание и курсор при наведении курсора).Итак, представьте ссылку, которая при нажатии отображает контекстное меню.Обратите внимание, что мне все равно, является ли текст действительно ссылкой, я просто хочу, чтобы отображался как ссылка.Таким образом, даже обычный текст будет в порядке, я бы сделал так, чтобы он отображался как ссылка с использованием CSS.

У меня есть следующие условия:

  • Контекстное меню должно появиться на стороне клиента,без отправки запроса.
  • Контекстное меню должно отображаться с использованием rich:componentControl (эти «ссылки») находятся внутри таблицы данных, поэтому тот же rich:contextMenu необходимо использовать повторно.

Я до сих пор не нашел удовлетворительного решения, так как каждый пробный подход вызывал у меня проблемы:

  1. Если я использую h:outputText (это было бы идеально), я не могу присоединитьсяна нем rich:componentControl (я думаю, потому что он не может запустить событие onclick).
  2. Если я использую a4j:commandLink, хотя я могу присоединить rich:componentControl, это делает серверзапрос.Я пытался добавить onclick="return false;", чтобы предотвратить запрос, но Richfaces добавляет JS, сгенерированный rich:componentControl после , что находится внутри онклика, что приводит к тому, что этот код вообще не доступен, и, конечно,контекстное меню вообще не появляется.

Есть ли способ сделать это?Пожалуйста, помните, нет запроса!

1 Ответ

2 голосов
/ 08 февраля 2011

Вы можете попробовать

<rich:componentControl disableDefault="true" ...>

Согласно документации с этим параметром componentControl должен добавить return false;.

Но помните о соответствующей ошибке: RF-5607

В случае, если документация ложная, вы можете использовать html якоря. В этом ответе показано, как создать ссылку с помощью componentControl и без обновления страницы:

<h:outputLink value="#" id="link" onclick="return false;">
  <h:outputText value="Link text"/> 
  <rich:componentControl attachTo="link" for="panel" operation="show" event="onclick"/>
</h:outputLink>

onclick="return false;" не позволяет якорю прокручивать страницу до нажатой ссылки.

...