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

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

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

Регистрация: Oct 2007
Сообщений: 66
По умолчанию Правельная работа с источником данных?

Есть DataGrid, Combobox и InputText поле и один источник данных в виде XML пришедшего из WebService как ПРАВЕЛЬНО организовать работу контролов над источником данных, что бы при выборе в DataGrid данные отражались Combobox и наоборот а также занасились в InputText а при заполнении InputText добавлялось поле в источник данных?

Старый 11.10.2007, 11:47
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 2  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Использовать Data Binding, заносить при получении данных в экземпляр ICollectionView (в случае XML'ника это XMLListCollection) и прописывать у контролов необходимые сеттеры и обработку событий change.

Старый 11.10.2007, 12:42
Захаров вне форума Посмотреть профиль Отправить личное сообщение для Захаров Найти все сообщения от Захаров
  № 3  
Ответить с цитированием
Захаров

Регистрация: Oct 2007
Сообщений: 66
Binding это конечно хорошо а как следить за курсором ICollectionView ?
что бы при его изменении все контролы перемещались по источнику данных на текущую запись

Старый 12.10.2007, 10:25
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 4  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Следить за перемещением курсора можно подписавшись на сообщение mx.events.FlexEvent.CURSOR_UPDATE. Большинство методы курсора "can be used as the source for data binding" - поэтому их можно использовать при биндинге, задав обработчикам соответствующие свойства.

Только не понятно какая конечная цель? Зачем следить за курсором ICollectionView?

Старый 12.10.2007, 11:38
Захаров вне форума Посмотреть профиль Отправить личное сообщение для Захаров Найти все сообщения от Захаров
  № 5  
Ответить с цитированием
Захаров

Регистрация: Oct 2007
Сообщений: 66
Что бы знать где мы находимся сечас на источнике данных...
а можно примерчик какойн и будь?

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

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
"Где мы находимся на источнике данных" - не совсем понятно что имеется ввиду. Для выбора какого-то элемента в источнике данных используются какие-то инструменты (DataGird, ComboBox etc.) - соотвественно при выборе меняется значение переменной в которой хранится выбранный элемент:
Код:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
	<mx:Script>
		<![CDATA[
		private var _currentData:XML
		[Bindable]
		public function get currentData():XML
		{
			return _currentData
		}
		public function set currentData(value:XML):void
		{
			_currentData=value
		}
		]]>
	</mx:Script>
	<mx:XMLList id="dataProvider" xmlns="">
		<data name="Anton" content="man"/>
		<data name="Sergey" content="man"/>
		<data name="Jane" content="worman"/>
	</mx:XMLList>
	<mx:Panel width="100%" 
			  height="100%" 
			  headerHeight="10" 
			  paddingBottom="10" 
			  paddingLeft="10" 
			  paddingRight="10" 
			  paddingTop="10">    	
			<mx:VBox width="100%" height="100%">
				<mx:HDividedBox width="100%" height="100%">
					<mx:VBox width="100%" height="100%">
						<mx:DataGrid id="dataGrid" dataProvider="{dataProvider}" change="{currentData = (dataGrid.selectedItem as XML)}" width="100%" height="100%">
							<mx:columns>
								<mx:DataGridColumn headerText="Name" dataField="@name"/>
								<mx:DataGridColumn headerText="Content" dataField="@content"/>
							</mx:columns>
						</mx:DataGrid>	
					</mx:VBox>
					<mx:VBox width="100%" height="100%">
						<mx:HBox width="100%">
							<mx:Label text="Name:" width="80"/>
							<mx:TextArea  id="nameTextArea" enabled="{(currentData == null)? false : true}"  change="{currentData.@name = nameTextArea.text}" text="{currentData.@name}" width="100%"/>					
						</mx:HBox>				
						<mx:HBox width="100%" height="100%">
							<mx:Label text="Content:" width="80"/>	
							<mx:TextArea id="contentTextArea" width="100%" enabled="{(currentData == null)? false : true}" text="{currentData.@content}" change="{currentData.@content = contentTextArea.text}" height="100%"/>									
						</mx:HBox>			
					</mx:VBox>
				</mx:HDividedBox>
			</mx:VBox>
	</mx:Panel>
</mx:Application>

Старый 12.10.2007, 14:19
Захаров вне форума Посмотреть профиль Отправить личное сообщение для Захаров Найти все сообщения от Захаров
  № 7  
Ответить с цитированием
Захаров

Регистрация: Oct 2007
Сообщений: 66
Прошу прощения но пример у вас не рабочий я немного его подправил:
Код:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
	<mx:Script>
		<![CDATA[
		[Bindable]
		private var _currentData:XML
		
		public function get currentData():XML
		{
			return _currentData
		}
		public function set currentData(value:XML):void
		{
			_currentData=value
		}
		]]>
	</mx:Script>
	<mx:XMLList id="dataProvider" xmlns="">
		<data name="Anton" content="man"/>
		<data name="Sergey" content="man"/>
		<data name="Jane" content="worman"/>
	</mx:XMLList>
	<mx:Panel width="100%" 
			  height="100%" 
			  headerHeight="10" 
			  paddingBottom="10" 
			  paddingLeft="10" 
			  paddingRight="10" 
			  paddingTop="10">    	
			<mx:VBox width="100%" height="100%">
				<mx:HDividedBox width="100%" height="100%">
					<mx:VBox width="100%" height="100%">
						<mx:DataGrid id="dataGrid" dataProvider="{dataProvider}" change="{_currentData = (dataGrid.selectedItem as XML)}" width="100%" height="100%">
							<mx:columns>
								<mx:DataGridColumn headerText="Name" dataField="@name"/>
								<mx:DataGridColumn headerText="Content" dataField="@content"/>
							</mx:columns>
						</mx:DataGrid>	
					</mx:VBox>
					<mx:VBox width="100%" height="100%">
						<mx:HBox width="100%">
							<mx:Label text="Name:" width="80"/>
							<mx:TextArea  id="nameTextArea" enabled="{(_currentData == null)? false : true}"  change="{_currentData.@name = nameTextArea.text}" text="{_currentData.@name}" width="100%"/>					
						</mx:HBox>				
						<mx:HBox width="100%" height="100%">
							<mx:Label text="Content:" width="80"/>	
							<mx:TextArea id="contentTextArea" width="100%" enabled="{(_currentData == null)? false : true}" text="{_currentData.@content}" change="{_currentData.@content = contentTextArea.text}" height="100%"/>									
						</mx:HBox>			
					</mx:VBox>
				</mx:HDividedBox>
			</mx:VBox>
	</mx:Panel>
</mx:Application>

Старый 12.10.2007, 14:40
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 8  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Вполне рабочий Возможно у вас более старая версия билдера (код написан на beta 2) [Bindable] свойство установлено имено для get метода currentData, а не для приватной переменной _currentData.

Старый 12.10.2007, 14:56
Захаров вне форума Посмотреть профиль Отправить личное сообщение для Захаров Найти все сообщения от Захаров
  № 9  
Ответить с цитированием
Захаров

Регистрация: Oct 2007
Сообщений: 66
Возможно...

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

Регистрация: Nov 2006
Сообщений: 134
Что-то мне тема напоминает вопрос типа "Как сделать так, чтоб было как обычно делают в интерфейсах к БД, написанных на Delphi"...
Ну да ладно.
Можно конечно решить через биндинг, а можно и настроить листенеры на таблицу и контролы - тогда будешь контролировать процесс полностью.

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

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

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


 


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


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