Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.11.2007, 17:59
MisterX вне форума Посмотреть профиль Отправить личное сообщение для MisterX Найти все сообщения от MisterX
  № 1  
Ответить с цитированием
MisterX
 
Аватар для MisterX

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
По умолчанию DataGrid и itemRenderer

Вопрос подниму ...и выложу исходни к не в архиве. ..
есть простой ХМЛ
Код:
<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>
Так вот если выводить его в таблице тоесть DataGrid то все отлично ...
но на последний столбец в таблице мне нужно вывести 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>
так вот ... при клике на кнопку тоесть при чтении хмла ... в котором 3 елемента ...
компонент рендерится 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>

ВОпрос ...что не так ... передавания ХМЛ в дата провайдер какими методами только не пробывал, все одно и тоже

Старый 01.11.2007, 18:46
librio вне форума Посмотреть профиль Отправить личное сообщение для librio Найти все сообщения от librio
  № 2  
Ответить с цитированием
librio

Регистрация: Nov 2006
Сообщений: 134
Все нормально.
Более того, при вертикальном и горизонтальном скроллинге ты опять увидишь, что элемент пересоздается заново. Если сомневаешься - почитай исходники компонента грида - там все прекрасно видно и отписано в комментах к классам.
__________________
http://creationcomplete.com

Старый 01.11.2007, 19:00
MisterX вне форума Посмотреть профиль Отправить личное сообщение для MisterX Найти все сообщения от MisterX
  № 3  
Ответить с цитированием
MisterX
 
Аватар для MisterX

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
так мне нужно чтоб каждій раз все перерисовывалось ... тоесть у мню даные каждый раз могуь быть разные ...

меняем компонент, ставим ...
Код:
<?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.
Старый 01.11.2007, 19:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Жду в личку нормальное название темы.

Старый 02.11.2007, 20:00
librio вне форума Посмотреть профиль Отправить личное сообщение для librio Найти все сообщения от librio
  № 5  
Ответить с цитированием
librio

Регистрация: Nov 2006
Сообщений: 134
Не понял до конца что ты имел ввиду, но попробую помочь
1. Назначаешь датапровайдер.
2. Периодически или в момент изменения данных (вобщем когда надо обновить данные для progressbar), изменяй значения в самом дата провайдере и делай рефреш. При этом данные в таблице должны обновиться.
__________________
http://creationcomplete.com

Старый 03.11.2007, 01:01
MisterX вне форума Посмотреть профиль Отправить личное сообщение для MisterX Найти все сообщения от MisterX
  № 6  
Ответить с цитированием
MisterX
 
Аватар для MisterX

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
Смари ... вызываю ф-ю refresh первый раз, вес нормально, даные в талице сответсвуют даным прогрем бара, когда вызываю ф-ю еще раз .. какбы даные получаю те же, от статического ХМЛ, НО прогрессбар не соотвествует даным в таблице, тоесть даным которые пришли из ХМЛ

Старый 06.11.2007, 16:21
librio вне форума Посмотреть профиль Отправить личное сообщение для librio Найти все сообщения от librio
  № 7  
Ответить с цитированием
librio

Регистрация: Nov 2006
Сообщений: 134
Цитата:
Сообщение от MisterX
НО прогрессбар не соотвествует даным в таблице, тоесть даным которые пришли из ХМЛ
А что там? Как тебе помочь? Опиши все нормальным русским языком - тогда глядишь все всё поймут и проблема решится.
__________________
http://creationcomplete.com

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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