Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   DataGrid и двумерный массив (http://www.flasher.ru/forum/showthread.php?t=108826)

midnighter 01.03.2008 03:41

DataGrid и двумерный массив
 
Люди, может кто-нибудь подскажет, возможно реализавать такое чудо с помощью DataGrid впринципе. Идея заключается в том, что первая и вторая колонки берутся из одной позиции хмл, а остальные по нарастающей схеме. То есть имеется хмл такого вида:

Код:

<time value="8_00">
                <space number="1"  discription="первый_первый" />
                <space number="2"  discription="первый_второй" />
                <space number="3"  discription="первый_третий" />
        </time>
        <time value="9_00">
                <space  number="1"  discription="второй_первый" />
                <space number="2"  discription="второй_второй" />
                <space  number="3"  discription="второй_третий" />
        </time>
...


А следующим образом мы можем взять кусочек хмл:

Код:

<mx: DataGrid dataProvider="{xml.time[0].space}" >
                  <mx: columns >
            <mx: DataGridColumn headerText="space" dataField="@number" />
            <mx: DataGridColumn headerText="8_00" dataField="@discription" />
            <mx: DataGridColumn headerText="9_00" dataField=???????? />
...
                  </mx: columns>
        </mx: DataGrid>


Вот и получается, что задав конкретный номер для провайдера мы сужаем свою работу и не можем вытащить данные для третьего столбца. Можно это как-то сделать? По сути у нас получается двумерный массив где первый уровень это time, а второй - space.
Помогите, если это возможно!:rolleyes:

etc 01.03.2008 10:52

midnighter, отредактируйте свой пост и оформите код тегами [code][/code].

baron27 03.03.2008 14:12

я бы не мучался и сделал структуру типа
Код:

<space number="1"  discription="первый_первый" value="8_00"/>

midnighter 03.03.2008 23:28

Допустим, структуру xml упростить можно, хотя тогда возникает масса неприятных повторений одинаковых тегов с одинаковым значением атрибутов, учитывая то, что их должно быть достаточно много. Но при этом основной вопрос остается в силе, как в разные колонки таблицы засунуть значения одинаковых атрибутов, произведя отсев по другому атрибуту.
На словах тяжко, вот пример:

Мы сводим к упрощенному виду хмл:

Код:

<space number="1" discription="первый_первый" value="8_00"/>
<space number="1" discription="второй_первый" value="9_00"/>
<space number="2" discription="первый_второй" value="8_00"/>
<space number="2" discription="второй_второй" value="9_00"/>

В таблице при этом в первой колонке должны содержаться значения атрибута value, во второй колонке discription, который в значении атрибута value имеет 8_00, а в третью необходимо вывести значения discription для 9_00. Может я просто чего-то не понимаю. Но ступор у меня в этом страшный!

baron27 04.03.2008 00:30

http://flasher.ru/forum/showthread.p...=labelFunction

NikR 04.03.2008 23:53

Если из данные из БД, то поменять запрос
Иначе сделать функцию преобразования XML->XML(или Object)

midnighter 11.03.2008 01:00

Спасибо всем, правда я решил проблему немного по-другому. Я пустил цикл for, в котором перебрал все вхождения нужного мне атрибута, эти вхождения засунул в массив, а его впихнул в датапровайдер и получил нужный результат, но все равно спасибо, я очень много осознал и узнал! Спасибо!!!

†‡Paladin‡† 11.03.2008 12:36

Это делается e4x оператором ".." в виде myXml..item


Часовой пояс GMT +4, время: 06:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.