Получить массив документов из RepeatControl

Тема в разделе "Lotus - Xpages", создана пользователем NickProstoNick, 30 июн 2016.

Метки:
  1. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет!
    Задача в следующем... нужно реализовать навигацию по документам RepeatControl предыдущий/следующий по нажатию на соответствующие кнопки. Можно на CSJS или SSJS.

    Была идея воспользоваться такой конструкцией.. якобы возвращает коллекцию документов и обращаться к документу можно по индексу. Но почему-то не работает :(
     
  2. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    56
    Симпатии:
    4
    Приветы :)

    А кнопки внутри репитера находятся?

    UPD: в общем суть такая:
    view1.getAllEntries().getNthEntry(repeaterIndex + 2) - следующий
    view1.getAllEntries().getNthEntry(repeaterIndex) - предыдущий
     
    #2 romych2004, 1 июл 2016
    Последнее редактирование: 1 июл 2016
  3. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Нет. Кнопки за пределами репитера.
    Код (Text):
    view1.getAllEntries().getNthEntry(repeaterIndex + 2) - следующий
    view1.getAllEntries().getNthEntry(repeaterIndex) - предыдущий
    Такая конструкция хороша, если вид плоский. У меня вид отфильтрован по категории. В моем случае это возвращает что попало
     
  4. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    56
    Симпатии:
    4
    XPages по большому счету использует обычные стандартные лотусовые классы. Репитер по категории - это навигатор по категории.
    Код (Text):
    var nav:NotesViewNavigator = view1.createViewNavFromCategory(<CATEGORY NAME>);
    nav.getNth(repeaterIndex + 2);
    nav.getNth(repeaterIndex);
     
  5. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Спасибо! Надо будет попробовать
     
  6. cLif

    cLif Active Member

    Регистрация:
    27 сен 2010
    Сообщения:
    35
    Симпатии:
    0
    Ещё как вариант, привязать (свойство binding), компонент к Java-объекту. Из него можно получить все что угодно по самому компоненту, т.к. это будет по сути объект, представляющий компонент.
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    и чего там будет с перформансом?
     
  8. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Да... народ зарабатывает на комментариях? :)
    Забыл отписаться... вопрос решил :)
    Не самый изящный способ, но тем не менее работает:
    1. при нажатии на кнопку получаю юнид текущего документа.
    2. формирую NotesViewEntryCollection из вида, который используется в репитере
    3. нахожу позицию текущего документа
    4. в зависимости от кнопки getNextEntry или getPrevEntry
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    если это про меня - вопрос не праздный
    я корячусь буфер использовать в переборе ентрисов, и разражаюсь секундными задержками (на сервере), а тут - встречаешь советы getNth
    именно с репитом - вопросом получения неких параметров по индексу не озадачивался , использую gridx
    и ссылка на пример не работает...
    т.е. регистрация просрочена
    у меня на домене так
    и хост не резолвится
     
    #9 lmike, 28 сен 2016
    Последнее редактирование: 28 сен 2016
  10. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    та не, не про тебя :)
    Задержек у меня нет... отклик достаточно быстрый.
    Да как ни крути, а все равно будешь занимать память. Ведь при каждом клике все равно навигатор или коллекция перестраивается :(
    Вот если бы глобально поиметь объект.
    Ну и еще проблема - у меня кнопки за пределами репитера и получается методы репитера не доступны
     
  11. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    56
    Симпатии:
    4
    Хз, не использовал

    А что не так с этим методом?
     
  12. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    если у него бэкэнд - навигатор - многостадийный перебор getnext|getprev и соответ. перформанс
     
  13. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    56
    Симпатии:
    4
    В задаче нет перебора
     
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    повторюсь - если getNth из навигатора - перебор будет (потому как все нотусевые классы, реализ. проход по коллекциям, именно так и делают)
    и в гайдах по перформансам всегда делают на "это" акцент
     
  15. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    56
    Симпатии:
    4
    Мне кажется ты путаешь перебор по коллекции с помощью getNth и использовать единоразово его.
     
  16. cLif

    cLif Active Member

    Регистрация:
    27 сен 2010
    Сообщения:
    35
    Симпатии:
    0
    Попробуй воспользоваться моим постом
     
Загрузка...

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