Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Компонент <dataGrid> и получение данных из базы данных / 25 сообщений из 28, страница 1 из 2
23.07.2013, 13:23
    #38340409
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Не могли бы вы подсказать, как можно компонент <dataGrid> связать с таблицей из базы данных? Чтобы данные не вручную прописывать через value у колонок или через MetaData, а именно получить из постоянно обновляющейся базы данных.
...
Рейтинг: 0 / 0
23.07.2013, 13:45
    #38340458
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Freeyкомпонент <dataGrid>
Э-э-э-эээ, кагбэ-э-эээ ...
...
Рейтинг: 0 / 0
23.07.2013, 13:46
    #38340461
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
...
Рейтинг: 0 / 0
23.07.2013, 13:47
    #38340464
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Freey ,
Например, так:<page xmlns=" http://www.intersystems.com/zen"  title="">
  <jsonSQLProvider id="json" sql="select 1 ID,10 Name union all select 2,111 union all select 3,2 union all select 4,1"/>
  <dataGrid controllerId="json" pageSize="2"/>
</page>
...
Рейтинг: 0 / 0
23.07.2013, 13:50
    #38340473
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
...
Рейтинг: 0 / 0
23.07.2013, 14:04
    #38340506
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
...
Рейтинг: 0 / 0
25.07.2013, 13:48
    #38343658
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
servit, спасибо.
...
Рейтинг: 0 / 0
25.07.2013, 20:54
    #38344350
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Есть еще вопросы по данному компоненту.

Можно ли регулировать размер колонок, так, чтобы они всю область компонента занимали, а не только по размеру теста в них. columnWidth не помог. Так же можно ли регулировать длину выделенной области по количеству строк?

Как реализовать реакция на на выбор строки?
onaction и onchangecell сразу не подходят, onselectcell реагирует, но только если перешли на новую строку. Т.к. dataGrid в любом случае выделяет какую-либо ячейку, то если пользователь хочет в первое же действие нажать на нее, система не среагирует на данный выбор.
...
Рейтинг: 0 / 0
26.07.2013, 14:54
    #38345318
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
FreeyМожно ли регулировать размер колонок, так, чтобы они всю область компонента занимали, а не только по размеру теста в них.Можно (см. canResizeColumns).
FreeycolumnWidth не помог.У меня работает (2013.2).
FreeyТак же можно ли регулировать длину выделенной области по количеству строк?Можно (см. multiSelect и selectedRange)
FreeyКак реализовать реакция на на выбор строки?selectMode="cells"
FreeyТ.к. dataGrid в любом случае выделяет какую-либо ячейкуНе в любом (см. currRow и currColumn). Установите их в 0 и ничего не будет выделено.
Freey, то если пользователь хочет в первое же действие нажать на нее, система не среагирует на данный выбор.У меня реагирует (может зависеть от браузера).
Пример:XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
<jsonSQLProvider id="json" sql="select 1 ID,10 Name union all select 2,111 union all select 3,2 union all select 4,1"/>
<dataGrid
controllerId="json"
canResizeColumns="true"
columnWidth="200"
selectMode="cells"
multiSelect="true"
selectedRange="1,1,3,1"
onselectcell="zenPage.selectcell(row,col);"
currRow="1"
currColumn="2"
/>
</page>
}

ClientMethod selectcell(
  row,
  col) [ Language = javascript ]
{
  zenAlert('row=',row,'\ncol=',col);
}В документации к новой версии 2013.2 Вы найдёте более подробное описание этого компонента.
...
Рейтинг: 0 / 0
27.07.2013, 11:47
    #38346250
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
servitУ меня работает (2013.2).
Ваш пример у меня тоже заработал.
Вставила в свой проект и изменила до нужно, тоже работает. Но старая версия как не работала, так и не хочет. Странно.

servitselectMode="cells"
Скорее rows, а не cells.

Еще один вопрос назрел.
При выборе строки <tablePane id="table"> можно было достать значение (valueColumn) выделенной строки про id, т.е. через ..%GetValueById("table"). С dataGrid такое не получается.
Передача параметров в функцию, которая обрабатывает выбор строки, не получится, потому что onselectcell не поддерживает пременную value.
...
Рейтинг: 0 / 0
27.07.2013, 14:29
    #38346320
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Freeyможно было достать значение (valueColumn)
Проблема решилась c помощью использования getRowValue(row). Хотя опять же вставка его в тестовый пример с Хабрахабра не помогала, а в своем проекте - все заработало.

servitМожно (см. multiSelect и selectedRange)
Я видимо неправильно выразилась: имела в виду область вокруг таблицы, которая со стрелками. Ширина фиксируется width, а вот height (регулировка длины) не хочет работать.

При генерации данных для таблицы через jsonSQLProvider данные не записываются в скрытый столбец. Можно это как-то исправить?
...
Рейтинг: 0 / 0
29.07.2013, 14:46
    #38347400
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
FreeyЯ видимо неправильно выразилась: имела в виду область вокруг таблицы, которая со стрелками. Ширина фиксируется width, а вот height (регулировка длины) не хочет работать.XData Style
{
<style type="text/css">
#dg {
  width: 620px;
  height: 100px;
}
</style>
}

dataGrid id="dg" />
FreeyПри генерации данных для таблицы через jsonSQLProvider данные не записываются в скрытый столбец. Можно это как-то исправить?Можно тестовый пример?
...
Рейтинг: 0 / 0
29.07.2013, 18:56
    #38347787
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Не получилось по другому вставить с подсветкой синтаксиса.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<jsonSQLProvider id="json" sql="select 1, 10, 11 union select 2, 20, 22 union select 3, 30, 33 union select 4, 40, 44"/>
<dataGrid
controllerId="json"
valueColumn="1"
id="table"
selectMode="rows"
multiSelect="false"
pageSize="20"
currRow="0"
currColumn="0">
<columnDescriptor caption="ID" hidden="true"/>
<columnDescriptor caption="Caption1"/>
<columnDescriptor caption="Caption2"/>
</dataGrid>
...
Рейтинг: 0 / 0
29.07.2013, 19:32
    #38347835
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
FreeyПри генерации данных для таблицы через jsonSQLProvider данные не записываются в скрытый столбец. Можно это как-то исправить?Что Вы здесь понимаете под "данные не записываются в скрытый столбец"? В базу не записываются?

Из последнего примера кода непонятно, что именно не работает и как Вы определяете факт "незаписи".
...
Рейтинг: 0 / 0
29.07.2013, 22:16
    #38347959
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
servit,

У меня три столбца в таблице (один из которых скрыт, туда записывается ID, который пользователю не нужно видеть). В обычной таблице в скрытый столбец из базы бы записались данные, а тут, если столбец скрыт, то в него ничего не записывается, т.е. если запустить пример, то ID, которые мы достаем из базы, записываются в Caption1. Если столбец сделать видимым, то в него данные успешно запишутся.

Имеется в виду "запишутся" данные, как "отобразятся".
...
Рейтинг: 0 / 0
29.07.2013, 23:20
    #38347994
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Freey ,
  <jsonSQLProvider id="json" sql="select 1 ID, 10 Caption1, 11 Caption2 union select 2, 20, 22 union select 3, 30, 33 union select 4, 40, 44"/>
  <dataGrid
    controllerId="json"
    valueColumn="1"
    id="table"
    selectMode="rows"
    multiSelect="false"
    pageSize="20"
    currRow="0"
    currColumn="0">
    <columnDescriptor hidden="true" value="=[@ID]"/>
    <columnDescriptor caption="Caption1" value="=[@Caption1]"/>
    <columnDescriptor caption="Caption2" value="=[@Caption2]"/>
  </dataGrid>
...
Рейтинг: 0 / 0
30.07.2013, 09:28
    #38348150
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
servit,

Спасибо.

Скажите, у меня фильтрация по скрытому столбцу не происходит. Это как-то исправляется?
...
Рейтинг: 0 / 0
30.07.2013, 13:30
    #38348640
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
FreeyСкажите, у меня фильтрация по скрытому столбцу не происходит. Это как-то исправляется?Сейчас фильтрация происходит на клиенте на основе дескрипторов столбцов, невидимые из которых исключаются из этого процесса. Но можно создать свой собственный компонент на основе <dataGrid>.
Или использовать параметризированный запрос, например, так:Для работы этого примера нужен патч<page xmlns=" http://www.intersystems.com/zen"  title="">
  <jsonSQLProvider id="json" sql="select * from (select 1 ID, 10 Caption1, 11 Caption2 union select 2, 20, 22 union select 3, 30, 33 union select 4, 40, 44) where ID between ? and ?">
    <parameter paramName="p1" value="3"/>
    <parameter paramName="p2" value="4"/>
  </jsonSQLProvider>
  <dataGrid  controllerId="json">
    <columnDescriptor caption="ID" value="=[@ID]"/>
    <columnDescriptor caption="Caption1" value="=[@Caption1]"/>
    <columnDescriptor caption="Caption2" value="=[@Caption2]"/>
  </dataGrid>
</page>
...
Рейтинг: 0 / 0
30.07.2013, 14:19
    #38348720
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
servit,

Спасибо.

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

но также нельзя и достать значение из скрытого столбца (через valueColumn и getRowValue(row)). И теряется смысл его скрывать, так как не возможно взаимодействие.
...
Рейтинг: 0 / 0
31.07.2013, 08:40
    #38349609
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Как получить Id объекта при выборе строки в dataGrid?
...
Рейтинг: 0 / 0
31.07.2013, 11:15
    #38349788
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
FreeyКак получить Id объекта при выборе строки в dataGrid?При скрытом поле ID, например, так:  <jsonSQLProvider id="json" sql="select -1 ID, 10 Caption1, 11 Caption2 union select -2, 20, 22 union select -3, 30, 33 union select -4, 40, 44"/>
  <dataGrid
    controllerId="json"
    onselectcell="zenAlert(zenThis.getCellExternalData(row-1,'ID'));"
    >
    <columnDescriptor value="=[@ID]" hidden="true"/>
    <columnDescriptor caption="Caption1" value="=[@Caption1]"/>
    <columnDescriptor caption="Caption2" value="=[@Caption2]"/>
  </dataGrid>
...
Рейтинг: 0 / 0
31.07.2013, 17:00
    #38350559
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
servit,

Спасибо большое.
...
Рейтинг: 0 / 0
01.08.2013, 14:10
    #38351633
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Мне нужно было выделить несколько строк, получилось это через showRowSelector (правильно ли это, или есть другие варианты?). Но тогда необходимо реагировать на каждый выбор checkbox'а, как это сделать?
И еще вопрос: как получить массив строк, которые выбрали с помощью checkbox'ов?
...
Рейтинг: 0 / 0
08.08.2013, 19:45
    #38360176
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Перепробовала различные обработчики, но на выбор checkbox'а, они не реагировали.
...
Рейтинг: 0 / 0
18.08.2013, 10:34
    #38369976
Freey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Компонент <dataGrid> и получение данных из базы данных
Как получить список Id объектов, соответствующих отмеченным галочками строкам в таблице.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Компонент <dataGrid> и получение данных из базы данных / 25 сообщений из 28, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]