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

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

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

Регистрация: Jan 2006
Сообщений: 10
По умолчанию Как динамически задать dataProvider для ItemEditor

Нужна помощь:
При редактировании последнего поля dataGrid'a выскакивает ComboBox компонент. Этому компоненту нужно присвоить dataProvider извне. Т.е. сделать так, чтобы myPersonalArray (он может динамически изменяться, например, получая данные из ColdFusion[веб службы] ) стал ДатаПровайдером для нашего компонента (у него id = "followUpCB").


Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initData()">
	<mx:DataGrid id="productsDG" editable="true" x="4" y="40" width="552" height="143">
			<!--Alert.show(productsDG.selectedItem.CUSTOM2)-->
			<mx:columns>
					<mx:DataGridColumn headerText="Продукт" dataField="Artist"/>
					<mx:DataGridColumn headerText="Тип" dataField="Album" editorDataField="newValue">
 
						<mx:itemEditor>
							<mx:Component>
								<mx:VBox>
 
									<mx:ComboBox id="followUpCB" width="100%" dataProvider="{initDG}"
										change="newValue=followUpCB.selectedItem.label;"
										/>
 
									<mx:Script>
									<![CDATA[
									import mx.collections.ArrayCollection;
									import mx.controls.Alert;
 
									[Bindable]
									private var initDG:ArrayCollection = new ArrayCollection([
									{label:'Pavement', data:0},
									{label:'Pavement2', data:1},
									{label:'Pavement3', data:2},
 
									]);
 
									// Define a property for returning the new value to the cell.
									[Bindable]
									public var newValue:String = 'Pavement';
 
									]]>
									</mx:Script>
 
								</mx:VBox>
							</mx:Component>
						</mx:itemEditor>
 
					</mx:DataGridColumn>
 
			</mx:columns>
	</mx:DataGrid>
 
	<mx:Script>
		<![CDATA[
			import mx.collections.*;
			import mx.controls.Alert;
 
			// Объявляем массив для DataGrid.dataProvider
 
					public var DGArray:Array = [
					{Artist:'menangen', Album:'Slanted and Enchanted', Price:11.99},
					{Artist:'menangen_old', Album:'Brighten the Corners', Price:11.99}];
 
 
					public var initDG:ArrayCollection;
					//Initialize initDG ArrayCollection variable from the Array.
 
					public function initData():void {
						initDG = new ArrayCollection(DGArray);
 
						productsDG.dataProvider = initDG;
					}
 
 
				public var myPersonalArray:Array = new Array();
				public var myCount:Boolean;
 
				public function test():void{
					myPersonalArray.push({label:"Menangen", data:0});
					myPersonalArray.push({label:"Inna", data:1});
 
					Alert.show(myPersonalArray[0].label + ", " + myPersonalArray[1].label);
 
					// ? Присвоить Component -> ComboBox с id = followUpCB свойство dataProvider = myPersonalArray
					//followUpCB.
				}
 
 
		]]>
	</mx:Script>
	<mx:Button x="4" y="191" label="Test now!" id="test_btn" click="test()"/>
</mx:Application>
Спасибо всем, кто отзовётся ;-)

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

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

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


 


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


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