![]() |
|
||||||||||
|
|||||
|
Вопрос подниму ...и выложу исходни к не в архиве. ..
есть простой ХМЛ <monitor> <router> <status>on</status> <ip>10.170.0.11</ip> <ping>0.66</ping> <uptime>2d</uptime> <addr>Vovchinecka34234234234</addr> <CPU>2</CPU> </router> <router> <status>off</status> <ip>255.255.255.255</ip> <ping>0.66</ping> <uptime>2d</uptime> <addr>Vovchinecka3</addr> <CPU>30</CPU> </router> <router> <status>on</status> <ip>10.170.0.13</ip> <ping>0.66</ping> <uptime>2d</uptime> <addr>Vovchinecka234</addr> <CPU>50</CPU> </router> </monitor> но на последний столбец в таблице мне нужно вывести ProgressBar Вот сам код <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
public function refresh():void{
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("test.xml");
loader.load(request);
loader.addEventListener(Event.COMPLETE, refreshComplete);
}
public function refreshComplete(event:Event):void {
var dp: XMLList;
var loader:URLLoader = URLLoader(event.target);
dp = new XMLList(loader.data);
this.monitorList.dataProvider=new XML(dp).children();
}
]]>
</mx:Script>
<mx:DataGrid x="10" y="59" width="458" height="226" id="monitorList">
<mx:columns>
<mx:DataGridColumn headerText="Status" dataField="status" width="50" textAlign="center"/>
<mx:DataGridColumn headerText="Addr" dataField="addr"/>
<mx:DataGridColumn headerText="ІР" dataField="ip" width="110"/>
<mx:DataGridColumn headerText="Uptime" dataField="uptime" width="150"/>
<mx:DataGridColumn headerText="TOP" dataField="CPU" itemRenderer="someRender" width="210"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="10" y="293" label="Button" click="refresh()"/>
</mx:Application>
а тут код самого компонента... сам прогрес бар выкинул так как он сейчас именно играет маловажную роль <?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init1()">
<mx:Script>
<![CDATA[
private function init1():void{
trace("Render element --- "+this.data);
}
]]>
</mx:Script>
</mx:Canvas>
компонент рендерится 4 раза тоесть первый елемент рендерится и в начале и в конце почемуто ... при повторном чтении ..компонент рендерится один раз ... После первого раза Render element --- <router> <status>on</status> <ip>10.170.0.11</ip> <ping>0.66</ping> <uptime>2d</uptime> <addr>Vovchinecka34234234234</addr> <CPU>2</CPU> </router> Render element --- <router> <status>off</status> <ip>255.255.255.255</ip> <ping>0.66</ping> <uptime>2d</uptime> <addr>Vovchinecka3</addr> <CPU>30</CPU> </router> Render element --- <router> <status>on</status> <ip>10.170.0.13</ip> <ping>0.66</ping> <uptime>2d</uptime> <addr>Vovchinecka234</addr> <CPU>50</CPU> </router> Render element --- <router> <status>on</status> <ip>10.170.0.11</ip> <ping>0.66</ping> <uptime>2d</uptime> <addr>Vovchinecka34234234234</addr> <CPU>2</CPU> </router> <router> <status>on</status> <ip>10.170.0.11</ip> <ping>0.66</ping> <uptime>2d</uptime> <addr>Vovchinecka34234234234</addr> <CPU>2</CPU> </router> ВОпрос ...что не так ... передавания ХМЛ в дата провайдер какими методами только не пробывал, все одно и тоже |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 134
|
Все нормально.
Более того, при вертикальном и горизонтальном скроллинге ты опять увидишь, что элемент пересоздается заново. Если сомневаешься - почитай исходники компонента грида - там все прекрасно видно и отписано в комментах к классам.
__________________
http://creationcomplete.com |
|
|||||
|
так мне нужно чтоб каждій раз все перерисовывалось ... тоесть у мню даные каждый раз могуь быть разные ...
меняем компонент, ставим ... <?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init1()">
<mx:Script>
<![CDATA[
private function init1():void{
trace("Render element --- "+this.data);
if(this.data.hasOwnProperty('CPU')){
this.prgBar.setProgress(this.data.CPU,100);
}
}
]]>
</mx:Script>
<mx:ProgressBar mode="manual" labelPlacement="center" id="prgBar"/>
</mx:Canvas>
ТОгда даные в таблице будут нормальные но соответствие прогрессбара будет только при первом чтении ХМЛ, при втором ваще какаято хня получаеццо (*(( Последний раз редактировалось etc; 01.11.2007 в 22:58. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Жду в личку нормальное название темы.
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 134
|
Не понял до конца что ты имел ввиду, но попробую помочь
![]() 1. Назначаешь датапровайдер. 2. Периодически или в момент изменения данных (вобщем когда надо обновить данные для progressbar), изменяй значения в самом дата провайдере и делай рефреш. При этом данные в таблице должны обновиться.
__________________
http://creationcomplete.com |
|
|||||
|
Смари ... вызываю ф-ю refresh первый раз, вес нормально, даные в талице сответсвуют даным прогрем бара, когда вызываю ф-ю еще раз .. какбы даные получаю те же, от статического ХМЛ, НО прогрессбар не соотвествует даным в таблице, тоесть даным которые пришли из ХМЛ
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 134
|
Цитата:
__________________
http://creationcomplete.com |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|