Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Заполнить DataGrid по XML (http://www.flasher.ru/forum/showthread.php?t=118549)

insected 27.11.2008 09:40

Заполнить DataGrid по XML
 
Здравствуйте, возникли проблемы с заполнением DataGrid данными, полученными из XML файла, вот его структура:
Код:

<schedule>
      <day name="Понедельник">
              <lesson>
                    <group name="group1" />
                    <auditory name="aud1" />
              </lesson>
              <lesson>
                    <group name="group2" />
                    <auditory name="aud2" />
              </lesson>
        </day>
        <day name="Вторник">
              <lesson>
                    <group name="group1" />
                    <auditory name="aud1" />
              </lesson>
              <lesson>
                    <group name="group2" />
                    <auditory name="aud2" />
              </lesson>
        </day>
        .....
  </schedule>

Нужно по этому делу сформировать расписание в DataGrid.
Вот код компонента:
Код:

<mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml" initialize="onInitialize(event)" draggableColumns="false" sortableColumns="false">
 <mx:Script>
 <![CDATA[
                import mx.controls.dataGridClasses.DataGridColumn;
                import mx.collections.ArrayCollection;
                import mx.controls.Alert;
                        [Bindable]
                        private var nodes:XMLList;
                        [Bindable]
                        private var lessons:Array = new Array();
                [Bindable]
                      public var initDG:ArrayCollection;
                     
                        private function onInitialize(evt:Event):void
                        {
                                var loader:URLLoader = new URLLoader();
                                loader.addEventListener(Event.COMPLETE,onLoaded);
                                try
                                {
                                        loader.load(new URLRequest("../assets/schedule.xml"));
                                }
                                catch(e:Error)
                                {
                                        Alert.show("Произошла ошибка при загрузке данных");
                                }
                                function onLoaded(event:Event):void
                                {
                                        nodes = XMLList(loader.data);
                                        fillGrid(nodes);
                               
                                }
                        }       
                        private function fillGrid(nodes:XMLList):void
                        {
                                var cols:Array = new Array();
                                for each(var day:XML in nodes.children())
                                {
                                        var column:DataGridColumn = new DataGridColumn();
                                        column.dataField = day.@name;
                                        cols.push(column);
                                        for each(var lesson:XML in day.*)
                                        {
                                                items.push(lesson.group.@name);
                                        }
                                }
                                this.columns = cols;
                        }
       

  ]]>
  </mx:Script>
  </mx:DataGrid>

Ну понятно, что я делаю: гружу XML и сую в грид колонки с именем дня. А как заполнить каждую колонку нужными данными lesson? (в каждой клетке должны быть номер группы и аудитория, ну пока можно просто что то одно...) Может как то переорганизовать структуру XML, чтобы было более удобно? Подскажите плиз...

darksranger 28.11.2008 16:19

у меян в дневнике есть запись насчет загрузки данных из xml в datagrid

insected 28.11.2008 17:26

В теме "DataGrid и LabelFunction" я конкретизировал вопрос, если не трудно, посмотрите пожалуйста...


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

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