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

Вернуться   Форум Flasher.ru > Блоги > darksranger

Рейтинг: 3.67. Голосов: 3.

Следущий блок посвещен UrlLoader и XML для DataGrid в mxml приложении

Запись от darksranger размещена 25.10.2008 в 04:52

И снова Всем привет!!!

Едем дальше на повестке дня DataGrid и заполнения его с помощью XML, полученного от php скрипта

создаем контрол в mxml приложении

Код:
	<mx:DataGrid x="184" y="202" width="676" height="600" id="sameDataGrid" visible = "true">
		<mx:columns>
			<mx:DataGridColumn headerText="sameCol1" dataField="col1"/>
			<mx:DataGridColumn headerText="sameCol2" dataField="col2"/>
		</mx:columns>
	</mx:DataGrid>
итак имеем dataGrid ( sameDataGrid ) с двумя колонками ( col1,col2 ) ,
отлично, теперь пишем скрипт получения ответа от php скрипта

отпраляем запрос

Код:
<mx:Script>

private function sameMetod():void {

			var php_loader:URLLoader = new URLLoader();
			var php_request:URLRequest=new URLRequest("getlist.php");
			var php_vars:URLVariables = new URLVariables();
			
			            
		    php_request.data=php_vars;
			php_loader.addEventListener(Event.COMPLETE, onServerAnswerlist);
			php_loader.load(php_request);


}


отправили запрос, теперь получаем ответ 


	private function onServerAnswerlist(e:Event):void {
		loadedXML = new XMLList(e.target.data) - пришел ответ ( в виде XML 
	
        var arr:Array = new Array();
        for each (var item:XML in loadedXML){ создаем цикл в котором отделим все блоки ( info ) 
 	        arr.push(item.info); сложим их все в array
 	        
 	        
           
        }

         
      var ddg:XMLList = new XMLList(arr); конвертируем array в XMLList

            sameDataGrid.dataProvider = ddg; - заполняем dataGrid


         
    

                       		
	}

</mx:Script>

сам XML файл, php скрипт нам посылает, вот в таком виде

Код:
<?xml version="1.0" encoding="windows-1251" ?>
<root>
  <all><![CDATA[15]]></all>
  <info>
    <col1><![CDATA[данные]]></col1>
    <col2><![CDATA[данные]]></col2>
  </info>
  <info>
    <col1><![CDATA[данные]]></col1>
    <col2><![CDATA[данные]]></col2>
  </info>
  <info>
    <col1><![CDATA[данные]]></col1>
    <col2><![CDATA[данные]]></col2>
  </info>
</root>

ну вроде все ) все поля заполнены, как нада
Всего комментариев 4

Комментарии

Старый 05.12.2008 23:15 †‡Paladin‡† вне форума
†‡Paladin‡†
Нда. Во первых во флексе есть специальный rpc пакет для работы с внешними сервисами в т.ч. PHP.

Во вторых. Если вам сервер отправил в виде XML, то и принимать надо в виде XML, а не XMLList.

В третьих не плохо было-бы посмотреть в e4x синтакс.
Все ваши циклы и переменные можно написать как var ddg:XMLList = loadedXML..info;

В четвертых в качестве датапровайдера не стоит использовать чистый XMLList. XMLList не диспатчит CHANGE эвент, что убивает байндинг.

В пятых датапровайдер лучше хранить отдельной переменной в коде и менять ее, а не датапровайдер в самом компоненте. В этом случае все подписанные компоненты обновятся централизованно. Enjoy.
Старый 05.12.2008 23:20 darksranger вне форума
darksranger
 
Аватар для darksranger
спасиб в след раз воспользуюсь рекомендациями просто там все уже переписанно а в блок написал так как когда то сам не нашел решения когда только столкнулся с flex
Старый 05.12.2008 23:32 †‡Paladin‡† вне форума
†‡Paladin‡†
Так переписал-бы с учетом рекомендаций, а то новайсы прочитают и подумают, что так и нужно писать.
Старый 05.12.2008 23:33 darksranger вне форума
darksranger
 
Аватар для darksranger
тоже верно перепишу на днях
 

 


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


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