Navigator

Тема в разделе "Lotus - Xpages", создана пользователем NickProstoNick, 17 апр 2013.

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет!
    Вот заморочился с компонентом EXLib Navigator.
    Пытаюсь сделать его динамическим.
    Нашел в нем возможность подгружать содержимое из вида (dominoViewEntriesTreeNode), но вот беда - не могу организовать выбор конкретного пункта меню из этих подгруженных :)

    Кто-то пробовал такое делать?

    Нужно сделать такое
    173.jpg
     
  2. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    Сорри, плохо говорю по русски. Что значит "организовать выбор конкретного пункта меню из этих подгруженных"?

    dominoViewEntriesTreeNode можно пользоваться примерно так:
    1) В var указываешь название переменной, котораю будет сожержать ViewEntry, т.е. текущий пункт меню.
    2) viewName и labelColumn - понятно
    3) В href - яваскриптом или ещё как-то определяем что, будет открываться при клике по пункту меню.

    Но я подозреваю, тебя больше интересует, как покрасить текущий пункт меню?
    Для этого надо в "selected" написать какой-то код, который будет определять, является ли конкретный пункт меню активным в данный момент.
    Для этого можно, например, сравнить текущий урл со значением из ViewEntry (var): #{java script:return '/'+e.getColumnValues().get(1)==facesContext.getExternalContext().getRequestSer
    vletPath()}
    Теперь самое интересное!
    Если функция в "selected" вернула true, то в сгенерированом html'е этот пункт меню, будет иметь класс "lotusSelected".
    Например открыта вторая страница:
    Код (Text):
    <ul id="view:_id1:_id2:navigator1">
    <li role="menuitem"><a href="page1.xsp" style="text-decoration:none">Page One</a></li>
    <li role="menuitem" class="lotusSelected"><a href="page2.xsp" style="text-decoration:none">Page Two</a></li>
    <li role="menuitem"><a href="page3.xsp" style="text-decoration:none">Page Three</a></li>
    </ul>
    т.е. остаётся добавить соответствующий CSS:
    Код (Text):
    .lotusSelected{
    color: red;
    }
    Сам код навигатора:
    Код (Text):
    <xe:navigator id="navigator1">
    <xe:this.treeNodes>
    <xe:dominoViewEntriesTreeNode viewName="MainMenu" labelColumn="Title" var="e" href="#{java script:e.getColumnValues().get(1)}">
    <xe:this.selected><![CDATA[#{java script:return '/'+e.getColumnValues().get(1)==facesContext.getExternalContext().getRequestServletPath()}]]></xe:this.selected>
    </xe:dominoViewEntriesTreeNode>
    </xe:this.treeNodes>
    </xe:navigator>
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Спасибо!
    Вопрос с xe:this.selected не мог "раскурить"
     
Загрузка...

Поделиться этой страницей