Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Обновление DataGrid во Flex 3.0 (http://www.flasher.ru/forum/showthread.php?t=140317)

niks_13 26.05.2010 15:39

Обновление DataGrid во Flex 3.0
 
День добрый. Есть проблема, таблица:
http://i48.tinypic.com/jsodjk.jpg
По нажатию на кнопку удаления записи таблица не обновляется - нужно перезапускать браузер. Вопрос: как заставить это чудо природы обновляться "на лету"?
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  currentState="tabelView" creationComplete="StartInit()">
        <mx:Script>
    <![CDATA[
            import mx.collections.XMLListCollection;
 
                import mx.collections.ArrayCollection;
                import mx.controls.TextInput;
                import mx.rpc.events.ResultEvent;
 
                [Bindable]
                public var xmlProvider:XMLList;
                public var datalist:ArrayCollection=new ArrayCollection();
 
                public function StartInit():void
                {
                        GetData.url="http://...";
                        GetData.send();
                }
 
                public function OnLoadData(event:ResultEvent):void
                {
                        xmlProvider=event.result.dop;
                        txt.text=xmlProvider.toString();
                        for(var i:Number=0;i<xmlProvider.length();i++)
                        {
                                datalist.addItem({id:xmlProvider[i].@id , num:xmlProvider[i].@num, group:xmlProvider[i].@group,
                                                                        prepod: xmlProvider[i].@prepod, subject: xmlProvider[i].@subject,
                                                                        room: xmlProvider[i].@room, date_time: xmlProvider[i].@date_time,
                                                                        type: xmlProvider[i].@type});
                        }
                        tabel.dataProvider=datalist;
                        tabel.rowCount=xmlProvider.length();
                }
 
 
                public function trans(id:String):void
                {
                        currentState='addForm';
                        //txt2.text='adad';
                        txt2.text=id.toString();
                }
 
                public function del(id:String):void
                {
                        GetData.url="http://...";
                        txt.text=GetData.url;
                        GetData.send();
                        txt.text=xmlProvider.toString();               
                }
 
        ]]>
        </mx:Script>
        <mx:HTTPService id="GetData" resultFormat="e4x" result="OnLoadData(event)" />
        <mx:states>
                <mx:State name="addForm">
                        <mx:AddChild position="lastChild">
                                <mx:Label x="282" y="304" text="Label" id="txt2"/>
                        </mx:AddChild>
                </mx:State>
 
                <mx:State name="tabelView">
                        <mx:AddChild position="lastChild">
                                <mx:DataGrid x="10" y="141" textAlign="center" id="tabel" rowCount="1">
                                        <mx:columns>
                                                <mx:DataGridColumn headerText="№" dataField="num"  id="awd" width="30"/>
                                                <mx:DataGridColumn headerText="Группа" dataField="group" width="70" />
                                                <mx:DataGridColumn headerText="Преподаватель" dataField="prepod"/>
                                                <mx:DataGridColumn headerText="Предмет" dataField="subject"/>
                                                <mx:DataGridColumn headerText="Дата/Время" dataField="date_time"/>
                                                <mx:DataGridColumn headerText="Аудитория" dataField="room"/>
                                                <mx:DataGridColumn headerText="Тип" dataField="type"/>
                                                <mx:DataGridColumn headerText="Опции">
                                                          <mx:itemRenderer>
                                                            <mx:Component>
                                                                      <mx:HBox horizontalAlign="center" verticalAlign="middle">
                                                                        <mx:Button icon="@Embed(source='../libs/img/edit.png')"
                                                                                click="outerDocument.trans(outerDocument.datalist[outerDocument.tabel.selectedIndex].id)" />
                                                                        <mx:Button icon="@Embed(source='../libs/img/drop.png')"
                                                                                click="outerDocument.del(outerDocument.datalist[outerDocument.tabel.selectedIndex].id)" />
                                                                      </mx:HBox>
                                                            </mx:Component>
                                                          </mx:itemRenderer>
                                                </mx:DataGridColumn>
                                        </mx:columns>
                                </mx:DataGrid>
                        </mx:AddChild>
                        <mx:AddChild position="lastChild">
                                <mx:Label x="10" y="289" text="Label" width="685" height="261" id="txt"/>
                        </mx:AddChild>
                </mx:State>
 
                <mx:State name="editForm"/>
        </mx:states>
 
</mx:Application>

Структура XML:
Код:

<?xml version="1.0" encoding="utf-8" ?>
- <dt>
  <dop id="93" num="1" group="13" prepod="Человек" subject="Слова" date_time="2010-05-25 12:12:00" room="231" type="Дополнительное занятие" />
  <dop id="94" num="2" group="1311" prepod="Человек" subject="Слова" date_time="2010-05-25 12:12:00" room="231" type="Дополнительное занятие" />
  </dt>


Волгоградец 26.05.2010 16:36

Надо удалить запись из провайдера.

niks_13 26.05.2010 17:07

А как это сделать?

Волгоградец 26.05.2010 17:24

Ты в OnLoadData() создал провайдер, назначил гриду. В del() ты передаешь id элемента. Вот и ищи по этому id нужный элемент в datalist и удаляй.

niks_13 01.06.2010 19:33

Спасибо, помогло.


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

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