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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.10.2007, 12:16
zurmansor вне форума Посмотреть профиль Отправить личное сообщение для zurmansor Найти все сообщения от zurmansor
  № 1  
Ответить с цитированием
zurmansor
[+1 21.01.08]
 
Аватар для zurmansor

Регистрация: Jul 2007
Сообщений: 126
Post Получить доступ к строке GridView из внутреннего контрола

У меня есть GridView
Код:
  <mx:DataGrid id="grid" editable="true" left="0" right="0" top="0" bottom="0" itemEditEnd="Edit(event)" 
	 	dataTipField="ID">
        <mx:columns>
            <mx:DataGridColumn headerText="ID" dataField="ID" width="100" editable="false"/>
            <mx:DataGridColumn headerText="Name" dataField="Name" editable="true"/>
            <mx:DataGridColumn headerText="" editable="false" width="100">
            <mx:itemRenderer>
            	<mx:Component>
            		<mx:Button click="" label="delete"/>
            	</mx:Component>
            </mx:itemRenderer>
            </mx:DataGridColumn>
        </mx:columns>
    </mx:DataGrid>
как из кнопки "delete" достучаться до номера строки в которой находится эта кнопка? И вообще как грамотно реализовать добавление-удаление-редактирование данных в GridView? Или хотябы удаление, с остльным я вроде бы разобрался.


Последний раз редактировалось zurmansor; 03.10.2007 в 12:44.
Старый 03.10.2007, 13:02
baron27 вне форума Посмотреть профиль Отправить личное сообщение для baron27 Посетить домашнюю страницу baron27 Найти все сообщения от baron27
  № 2  
Ответить с цитированием
baron27
Контрибьютор базы знаний по Флекс
 
Аватар для baron27

Регистрация: Aug 2005
Сообщений: 690
из итемрендерера добраться до внешнего приложения можно через outerDocument или parentDocument. Управлять гридом нужно через его датапровайдер с помощью конструкций типа dg.selectedItem.fieldName.
__________________
Flex 2 и Co

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

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Можно написать свой itemRenderer с кнопкой, который при нажатии на неё будет диспетчить свое сообщение, с необходимыми вам параметрами. В приложении ловить его и совершать необходимые действия.

Старый 03.10.2007, 23:01
NikR вне форума Посмотреть профиль Отправить личное сообщение для NikR Найти все сообщения от NikR
  № 4  
Ответить с цитированием
NikR

Регистрация: Nov 2006
Сообщений: 76
№ строки: grid.selectedIndex
Строка: delete.data

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

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Из
Код:
            	<mx:Component>
            		<mx:Button click="" label="delete"/>
            	</mx:Component>
Переменная grid надоступна из Component, так что grid.selectedIndex не сработает.

Старый 04.10.2007, 00:54
lowka вне форума Посмотреть профиль Отправить личное сообщение для lowka Найти все сообщения от lowka
  № 6  
Ответить с цитированием
lowka

Регистрация: Sep 2006
Сообщений: 256
Код:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">	
	<mx:DataGrid width="500">
		<mx:dataProvider>
			<mx:ArrayCollection>
				<mx:Object artist="Fused" album="Audio" price="18.99" />
				<mx:Object artist="Squarepusher" album="Hello Everything" price="16.98"/>
				<mx:Object artist="Ellen Allien" album="Berlinette" price="16.98"/>
				<mx:Object artist="Vargo" album="Beauty" price="16.98"/>
				<mx:Object artist="Orbital" album="In Sides" price="11.98"/>
				<mx:Object artist="Prefuse 73" album="One Word Extinguisher" price="16.98"/>
			</mx:ArrayCollection>
		</mx:dataProvider>
		<mx:columns>
			<mx:DataGridColumn dataField="artist" headerText="Artist" />
			<mx:DataGridColumn dataField="album" headerText="Album" />
			<mx:DataGridColumn dataField="price" headerText="Price" />
			<mx:DataGridColumn headerText="" editable="false" width="100" itemRenderer="renderers.Renderer"/>
		</mx:columns>
	</mx:DataGrid>
</mx:Application>
renderers/Renderer.mxml:
Код:
<?xml version="1.0" ?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
			import flash.events.MouseEvent;
			import mx.collections.ArrayCollection;
			import mx.controls.dataGridClasses.DataGridBase;
			
			private function clickHandler(event:MouseEvent):void 
			{
				var dataGrid:DataGridBase = DataGridBase(this.owner);
				var arrayCollection:ArrayCollection = dataGrid.dataProvider as ArrayCollection;
				
				arrayCollection.removeItemAt(dataGrid.selectedIndex);
			}
		]]>
	</mx:Script>
	
	<mx:Button label="delete" click="clickHandler(event)" />
</mx:HBox>

Старый 04.10.2007, 17:27
zurmansor вне форума Посмотреть профиль Отправить личное сообщение для zurmansor Найти все сообщения от zurmansor
  № 7  
Ответить с цитированием
zurmansor
[+1 21.01.08]
 
Аватар для zurmansor

Регистрация: Jul 2007
Сообщений: 126
Цитата:
Сообщение от NikR
Строка: delete.data
Вот этого не понял, можно поподробнее, пожалуста?

Цитата:
Сообщение от Sneg
Переменная grid надоступна из Component, так что grid.selectedIndex не сработает.
Доступна, только через левую заднюю ногу:
Код:
mx.core.Application.application['grid']
to lowka: Уря! получилось. почти так и сделал:
Код:
 <mx:Button click="mx.core.Application.application['Delete']();" label="delete"/>
и
Код:
public function Delete():void{
   var arrayCollection:ArrayCollection = grid.dataProvider as ArrayCollection;
  arrayCollection.removeItemAt(grid.selectedIndex);
}


Последний раз редактировалось zurmansor; 04.10.2007 в 17:34.
Старый 04.10.2007, 17:31
baron27 вне форума Посмотреть профиль Отправить личное сообщение для baron27 Посетить домашнюю страницу baron27 Найти все сообщения от baron27
  № 8  
Ответить с цитированием
baron27
Контрибьютор базы знаний по Флекс
 
Аватар для baron27

Регистрация: Aug 2005
Сообщений: 690
я же говорю:
parentDocument.grid
outerDocument.grid
__________________
Flex 2 и Co

Старый 04.10.2007, 17:41
zurmansor вне форума Посмотреть профиль Отправить личное сообщение для zurmansor Найти все сообщения от zurmansor
  № 9  
Ответить с цитированием
zurmansor
[+1 21.01.08]
 
Аватар для zurmansor

Регистрация: Jul 2007
Сообщений: 126
Цитата:
Сообщение от baron27
я же говорю:
parentDocument.grid
outerDocument.grid
Спасибо, переделал таким образом. Так действительно проще

Старый 04.10.2007, 18:21
baron27 вне форума Посмотреть профиль Отправить личное сообщение для baron27 Посетить домашнюю страницу baron27 Найти все сообщения от baron27
  № 10  
Ответить с цитированием
baron27
Контрибьютор базы знаний по Флекс
 
Аватар для baron27

Регистрация: Aug 2005
Сообщений: 690
паблик методы тоже вызываются таким образом.
Методы называются с маленькой буквы, но каждое следующее слово идет с большой.
__________________
Flex 2 и Co

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

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

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


 


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


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