Обновление 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>
|