Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/37: Рейтинг темы: голосов - 37, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
1

Navigator

16.04.2013, 21:20. Просмотров 6823. Ответов 5
Метки нет (Все метки)

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

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

Нужно сделать такое
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2013, 21:20
Ответы с готовыми решениями:

Navigator control
Как можно передавать состояние Navigator control со страницы на страницу. Есть 2 страницы Xpages1 и...

Navigator с Graphic Background
Господа, у меня тут возник, как мне кажется, вопрос первоклассника, но всё же. Имел я честь...

DB Navigator
Подскажите пожалуйста, создал таблицу, через DBEdit ввожу данные и надо что бы они могли...

Help Me Gps Navigator
Помогите с прогой GPS NAVIGATOR хотябы сделать 1 маршрут от а до б.... все советы учту есть сpp...

5
Zyko
16.04.2013, 23:39 2
Сорри, плохо говорю по русски. Что значит "организовать выбор конкретного пункта меню из этих подгруженных"?

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".
Например открыта вторая страница:

Код
<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:

Код
.lotusSelected{
color: red;
}
Сам код навигатора:

Код
<xe:navigator id="navigator1">
<xe:thys.treeNodes>
<xe:dominoViewEntriesTreeNode viewName="MainMenu" labelColumn="Title" var="e" href="#{java script:e.getColumnValues().get(1)}">
<xe:thys.selected><![CDATA[#{java script:return /+e.getColumnValues().get(1)==facesContext.getExternalContext().getRequestServletPath()}]]></xe:thys.selected>
</xe:dominoViewEntriesTreeNode>
</xe:thys.treeNodes>
</xe:navigator>
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
11.05.2017, 14:28 3
Спасибо!
Вопрос с xe:thys.selected не мог "раскурить"


--- Добавлено 12 май 2017. Первое сообщение размещено 18 апр 2013 ---

Продолжаю вопросы по навигатору..
Ситуация вот какая... в навигаторе 80-100 элементов.
Навигатор помещен в div-контейнер, который ограничен 20-ю строками по высоте. При переполнение div - появляется скрол по высоте.
Так вот ситуация: например надо кликнуть на 70-й элеменит, обновить страницу (включая навигатор), но оставить 70-й элемент в фокусе ( оставить видимым в div-контейнере) . Как такое можно организовать?
0
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 93
15.05.2017, 08:59 4
А у тебя, судя по всему, обновляется вся страница(ну или переход на другую страницу)?
Вариант 1 - переделать на SPA(контрол dynamicContent)
Вариант 2 - где-нибудь на онлоад добавить csjs, который будет мотать к нужному элементу
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
15.05.2017, 16:06 5
Да, обновляется вся страница. Тут без вариантов. Надо помечать выбранную строку в навигаторе.
Касательно скролить - это понятно. Вопрос как?
0
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 93
16.05.2017, 09:02 6
jquery используется? или только dojo?

UPD: в общем напишу на доджо, доджо точно есть
Чтобы не делать лишних запросов на сервер - устанавливаем куки, а при загрузке - скидываем их.

На всякий случай, если вдруг страница не откроется и чтобы при следующем заходе нам не прокрутывало - устанавливаем куки на 3 минуты


Код
<xp:thys.resources>
<xp:dojoModule name="dojo.cookie"></xp:dojoModule>
</xp:thys.resources>
<xe:navigator id="navigator1" style="height: 200px; width: 200px; overflow: scroll;">
<xe:thys.treeNodes>
<xe:dominoViewEntriesTreeNode var="entry" viewName="XXX" labelColumn="XXX">
<xe:thys.onClick><![CDATA[window.location.href = test2.xsp;
var date = new Date();
date.setTime(date.getTime() + (3 * 60 * 1000)); // 3 min
dojo.cookie(navigator-scroll, dojo.attr(dojo.byId(#{id:navigator1}), navigator-scroll), {expires: date});]]></xe:thys.onClick>
</xe:dominoViewEntriesTreeNode>
</xe:thys.treeNodes>
</xe:navigator>
<xp:scriptBlock id="scriptBlock1">
<xp:thys.value><![CDATA[dojo.addOnLoad(function() {
var navigatorNode = dojo.byId(#{id:navigator1});
dojo.attr(navigatorNode, navigator-scroll, dojo.cookie(navigator-scroll) || 0);
dojo.cookie(navigator-scroll, null, {expires: -1});
navigatorNode.scrollTop = dojo.attr(navigatorNode, navigator-scroll);


dojo.connect(navigatorNode, scroll, function() {
dojo.attr(thys, navigator-scroll, thys.scrollTop);
});
});]]></xp:thys.value>
</xp:scriptBlock>
Если будут вопросы - спрашивай.
Еще вариант - вместо куки значение передавать через УРЛ. Можно через хэш.. Ну это уж как больше нравится. Если надо - могу расписать
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2017, 09:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Navigator drawler
Можно ли в меню Navigator drawler добавить кнопку чтоб добавлялись в него новые item?

Navigator в Vaadin
Всем привет! Помогите, пожалуйста решить проблему. В моей программе из навигации только одна...

SQL Navigator 5.5
Установлен Updeateble ON. но не дает редактировать значения полей. В чем проблема?

SQL Navigator 5.5
Всем привет:) начал работать в SQL Navigator 5.5 нужно типиэировать вложенные таблицы; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.