DataGrid и DynamicContent

motogarri

Well-known member
17.02.2010
200
3
#1
Привет.
Пытаюсь прикрутить datagrid к странице, как аналог вычисляемой подформы в нотесе. Цель - single page app.
Делаю xe:applicationLayout, в нём навигатор и xe:dynamicContent. Все работает отлично, кроме datagrid, а он-то как раз и нужен. При выборе кастом контрола с гридом, грид ломается... Будто слетает с него CSS-ка. Не могу лучше объяснить. Что-то не могу файл приложить к теме. Ни .nsf ни .zip
 

motogarri

Well-known member
17.02.2010
200
3
#5
Кастом-контролы в dynamicContent вычисляются. Да и по коду не понятно будет. Все там правильно. И cc с гридом тоже в порядке. Если вне dynamicContent его отображать - все нормально. Это надо базу смотреть, чтобы понятно было.
 

alexas1

Lotus team
10.04.2014
734
149
#6
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 нормально ест
 
Последнее редактирование:

motogarri

Well-known member
17.02.2010
200
3
#7
Значит дело было в refreshMode="partial".
Очень жаль. Все задумывалось как раз для того, чтобы не перегружать всю страницу. Каким-то образом partial refresh портит грид... Пороюсь еще, может найду, как обойти
 

alexas1

Lotus team
10.04.2014
734
149
#8
Значит дело было в refreshMode="partial".
Очень жаль. Все задумывалось как раз для того, чтобы не перегружать всю страницу. Каким-то образом partial refresh портит грид... Пороюсь еще, может найду, как обойти
с тремя СС то ;)
клади в панели-дивы и управляй видимостью, делов то
 

motogarri

Well-known member
17.02.2010
200
3
#9
Не, там много будет)) Это демо-база для форума специально сделал.
 

motogarri

Well-known member
17.02.2010
200
3
#10
Проблема в том, что на страницу не загружаются стили грида
HTML:
<link rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/.mini/css/@Oa&@Ob&@Da&@Ib&@Ta&@Tb&2TexspSF.css&2OgmetalTheme.css&Wdojoroot/dojo/resources/dojo.css&Wdojoroot/dojox/grid/resources/Grid.css&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 браузера вручную добавляю линк на стили, грид начинает отображаться, как положено.

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

motogarri

Well-known member
17.02.2010
200
3
#12
lmike, не знаю, как надо.

<
Для просмотра контента необходимо: Войти или зарегистрироваться
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&@Ob&@Da&@Ib&@Ta&@Tb&2TexspSF.css&2OgmetalTheme.css&Wdojoroot/dojo/resources/dojo.css&Wdojoroot/dojox/grid/resources/Grid.css&Wdojoroot/dojox/grid/resources/tundraGrid.css.css">
Причем первая часть линка уже присутствует:
/xsp/.ibmxspres/.mini/css/@Oa&@Ob&@Da&@Ib&@Ta&@Tb&2TexspSF.css&2OgmetalTheme.css
так что ее не надо. Нужны только стили грида
 
Последнее редактирование:

romych2004

Lotus team
01.04.2013
112
20
#13
Я не понял, не работает в нотесе или в браузере?
Попробуйте поиграйтесь с агрегацией ресурсов, убрать/добавить


Печаль беда, при партиал рефреше к нам приходит код:
Код:
<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 как-то криво работает, более глубоко нет сейчас возможности искать проблему

Советую взять текст из
Для просмотра контента необходимо: Войти или зарегистрироваться
и tundraGrid.css (версию доджо поменяйте на свою), пихнуть их в один или в два файла - это как хотите и подключить к main.xsp, а не к кастом контролу

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

Пока чет других вариантов не вижу.. если что - спрашивайте
 
Последнее редактирование:

motogarri

Well-known member
17.02.2010
200
3
#14
Не работает в икс пейдже. Единственный вопрос, как загрузить на страницу вот эту штуку:
<
Для просмотра контента необходимо: Войти или зарегистрироваться
rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/.mini/css/@Oa&@Ob&@Da&@Ib&@Ta&@Tb&2TexspSF.css&2OgmetalTheme.css&Wdojoroot/dojo/resources/dojo.css&Wdojoroot/dojox/grid/resources/Grid.css&Wdojoroot/dojox/grid/resources/tundraGrid.css.css">

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

romych2004

Lotus team
01.04.2013
112
20
#15
Не работает в икс пейдже. Единственный вопрос, как загрузить на страницу вот эту штуку:
<
Для просмотра контента необходимо: Войти или зарегистрироваться
rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/.mini/css/@Oa&@Ob&@Da&@Ib&@Ta&@Tb&2TexspSF.css&2OgmetalTheme.css&Wdojoroot/dojo/resources/dojo.css&Wdojoroot/dojox/grid/resources/Grid.css&Wdojoroot/dojox/grid/resources/tundraGrid.css.css">

В качестве костыля я сейчас вставил пустой грид, который мне подтягивает на страницу стили еще до того, как заработает Dynamic Content
Словами сложно объяснить проблему, это надо базу смотреть. В первом посте ссылка.
Прошу прощения, отредактировал прошлое сообщение, ответ там

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

alexas1

Lotus team
10.04.2014
734
149
#16
на мэйн:

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