DataGrid и DynamicContent

Тема в разделе "Lotus - Xpages", создана пользователем motogarri, 1 авг 2016.

  1. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Привет.
    Пытаюсь прикрутить datagrid к странице, как аналог вычисляемой подформы в нотесе. Цель - single page app.
    Делаю xe:applicationLayout, в нём навигатор и xe:dynamicContent. Все работает отлично, кроме datagrid, а он-то как раз и нужен. При выборе кастом контрола с гридом, грид ломается... Будто слетает с него CSS-ка. Не могу лучше объяснить. Что-то не могу файл приложить к теме. Ни .nsf ни .zip
     
  2. WebWare Team

    WebWare Team Администратор
    Команда форума

    Регистрация:
    30 дек 2015
    Сообщения:
    203
    Симпатии:
    98
    Ограничение на вложения 2 мб.
     
  3. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
  4. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    если у вас одна форма /контрол - то его код и выкладывайте сюда
     
  5. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Кастом-контролы в dynamicContent вычисляются. Да и по коду не понятно будет. Все там правильно. И cc с гридом тоже в порядке. Если вне dynamicContent его отображать - все нормально. Это надо базу смотреть, чтобы понятно было.
     
  6. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    1
    <xp:eventHandler event="onItemClick" submit="true"
    refreshId="dynamic_content" refreshMode="complete">
    ..........................

    2
    <xp:panel xp:key="grid" style="height:222px">
    <xc:ccDatagrid></xc:ccDatagrid>
    </xp:panel>

    3
    height в процентах не прокатит, прогресс - будет

    ЗЫ )))) смищщьно, пишу словами - гриду положить в панель
    ЗЗЫ просто zip нормально ест
     
    #6 alexas1, 1 авг 2016
    Последнее редактирование: 1 авг 2016
  7. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Значит дело было в refreshMode="partial".
    Очень жаль. Все задумывалось как раз для того, чтобы не перегружать всю страницу. Каким-то образом partial refresh портит грид... Пороюсь еще, может найду, как обойти
     
  8. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    с тремя СС то ;)
    клади в панели-дивы и управляй видимостью, делов то
     
  9. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Не, там много будет)) Это демо-база для форума специально сделал.
     
  10. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Проблема в том, что на страницу не загружаются стили грида
    HTML:

    <link rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/.mini/css/@Oa&amp;@Ob&amp;@Da&amp;@Ib&amp;@Ta&amp;@Tb&amp;2TexspSF.css&amp;2OgmetalTheme.css&amp;Wdojoroot/dojo/resources/dojo.css&amp;Wdojoroot/dojox/grid/resources/Grid.css&amp;Wdojoroot/dojox/grid/resources/tundraGrid.css.css">
     
    Попробовал изначально их грузить так:
    HTML:

    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core"
       xmlns:xe="http://www.ibm.com/xsp/coreex"
       xmlns:xc="http://www.ibm.com/xsp/custom">

        <link rel="stylesheet" type="text/css" href="/.ibmxspres/dojoroot/dijit/themes/tundra/tundra.css"></link>
        <link rel="stylesheet" type="text/css" href="/.ibmxspres/dojoroot/dojox/grid/resources/Grid.css.css"></link>
        <link rel="stylesheet" type="text/css" href="/.ibmxspres/dojoroot/dojox/grid/resources/tundraGrid.css.css"></link>

    <xe:applicationLayout id="applicationLayout1">
    . . .
     
    На веб страницу стили не загрузились. Если я в Elements браузера вручную добавляю линк на стили, грид начинает отображаться, как положено.

    Добавил на страницу пустой грид, и стили стали подгружаться. Как их загрузить на страницу при открытии?
     
    #10 motogarri, 2 авг 2016
    Последнее редактирование: 2 авг 2016
  11. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    css.css - это так надо?
     
  12. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    lmike, не знаю, как надо.

    <link rel="stylesheet" type="text/css" href=" ... Wdojoroot/dojox/grid/resources/tundraGrid.css.css"
    Так загружаются стили в html коде страницы, где открывается один грид. А как правильно загрузить css с сервера я не понял.
    Зато вот что понял:
    Когда открывается страница на ней нет компонентов, помещённых в DynamicContent. Потом по запросу dynamicContent.show() и частичному обновлению, подгружается сам контент, но при этом partial refresh тянет с сервера только данные, без стилей.
    1. Контрол view отображается корректно, потому что стили к нему применяет сервер и в качестве данных всю html разметку таблицы отдаёт клиенту.
    2. Грид рисуется клиентским скриптом на клиенте и стили к нему применяются только те, что уже ранее были загружены на страницу. Потому при частичном обновлении грид просто парсит json и отображает его без стиля.
    Я правильно понимаю?
    И еще. Как загрузить на страницу без компонента DataGrid вот эту штуку?
    HTML:
    <link rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/.mini/css/@Oa&amp;@Ob&amp;@Da&amp;@Ib&amp;@Ta&amp;@Tb&amp;2TexspSF.css&amp;2OgmetalTheme.css&amp;Wdojoroot/dojo/resources/dojo.css&amp;Wdojoroot/dojox/grid/resources/Grid.css&amp;Wdojoroot/dojox/grid/resources/tundraGrid.css.css">
    Причем первая часть линка уже присутствует:
    /xsp/.ibmxspres/.mini/css/@Oa&amp;@Ob&amp;@Da&amp;@Ib&amp;@Ta&amp;@Tb&amp;2TexspSF.css&amp;2OgmetalTheme.css
    так что ее не надо. Нужны только стили грида
     
    #12 motogarri, 2 авг 2016
    Последнее редактирование: 2 авг 2016
  13. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    55
    Симпатии:
    4
    Я не понял, не работает в нотесе или в браузере?
    Попробуйте поиграйтесь с агрегацией ресурсов, убрать/добавить


    Печаль беда, при партиал рефреше к нам приходит код:
    Код (Text):

    <link rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/dojoroot-1.9.7/dojox/grid/resources/Grid.css">
    <link rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/dojoroot-1.9.7/dojox/grid/resources/tundraGrid.css">
     
    Но файлы не подтягиваются. Подозреваю dojo как-то криво работает, более глубоко нет сейчас возможности искать проблему

    Советую взять текст из http://SERVERNAME/xsp/.ibmxspres/dojoroot-1.9.7/dojox/grid/resources/Grid.css и tundraGrid.css (версию доджо поменяйте на свою), пихнуть их в один или в два файла - это как хотите и подключить к main.xsp, а не к кастом контролу

    Если Вам надо чтобы цсски грузились именно после загрузки кастом контрола, то на он клиент лоад кастома ручками вставлять в хеад страницы эти цсски

    Пока чет других вариантов не вижу.. если что - спрашивайте
     
    #13 romych2004, 3 авг 2016
    Последнее редактирование: 3 авг 2016
  14. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Не работает в икс пейдже. Единственный вопрос, как загрузить на страницу вот эту штуку:
    <link rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/.mini/css/@Oa&amp;@Ob&amp;@Da&amp;@Ib&amp;@Ta&amp;@Tb&amp;2TexspSF.css&amp;2OgmetalTheme.css&amp;Wdojoroot/dojo/resources/dojo.css&amp;Wdojoroot/dojox/grid/resources/Grid.css&amp;Wdojoroot/dojox/grid/resources/tundraGrid.css.css">

    В качестве костыля я сейчас вставил пустой грид, который мне подтягивает на страницу стили еще до того, как заработает Dynamic Content
    Словами сложно объяснить проблему, это надо базу смотреть. В первом посте ссылка.
     
    #14 motogarri, 3 авг 2016
    Последнее редактирование: 3 авг 2016
  15. romych2004

    romych2004 Well-Known Member

    Регистрация:
    1 апр 2013
    Сообщения:
    55
    Симпатии:
    4
    Прошу прощения, отредактировал прошлое сообщение, ответ там

    Подтягивать пустой грид у меня тоже как вариант был, но у меня почему-то после этого не грузится нужный грид :) может потому что пустому надо хоть какие-то данные дать
     
    motogarri нравится это.
  16. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    на мэйн:

    <xp:this.resources>
    <xp:styleSheet href="/.ibmxspres/dojoroot/dojox/grid/resources/tundraGrid.css"></xp:styleSheet>
    </xp:this.resources>
    --------------------------
    с партиал работает
    ток это тоже костыль - заявленное в коробке, обязано работать из коробки
    ресурсы грузить\выгружать можно по необходимости, если уж оптимизировать
    кста, что бы грузить СС и XP на мэйн совсем нет необходимости использовать геморный "Dynamic Content" , тут эта тема уже поднималась
     
    motogarri нравится это.
  17. motogarri

    motogarri Well-Known Member

    Регистрация:
    17 фев 2010
    Сообщения:
    188
    Симпатии:
    4
    Работает и так и так, спасибо.
    Поищу, гляну. Хотя сейчас и так устраивает.
     
Загрузка...

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