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

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

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

Регистрация: Oct 2006
Сообщений: 44
По умолчанию CheckBox и Image в ячейке DataGrid

Добрый день.
Имеется DataGrid заполняемый динамически из xml через URLLoader.
Потом добавляется ещё несколько колонок(опять таки через экшнскрипт, не в mxml коде). Вобщем всё генерится динамически.
Мне необходимо вставить в каждую ячейку одной из колонок какой-то компонент, чекбокс или имидж. Такой же компонент надо вствить и в head колонки.
Нашел несколько подобных примеров, но там используется вставкка компонента прямо в mxml, а мне надо динамически.
Вобщем за помощь буду очень признателен ))

Старый 13.02.2007, 03:18
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Нужно создать сначала свой ItemRenderern (в Flex Developer Guide -> Customizing User Interface есть статьи и по MXML и по AS)

Далее тебе нужно через фабрику, установить рендерер, вроде

Код:
myDataGridCollumn.itemRenderer = new ClassFactory(MyItemRendererClass);
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 13.02.2007, 15:39
asuri вне форума Посмотреть профиль Отправить личное сообщение для asuri Найти все сообщения от asuri
  № 3  
asuri

Регистрация: Oct 2006
Сообщений: 44
Спасибо помогло, но теперь у меня возникла другая проблема.
Для начаа опишу то что получилось на данный момент:
есть датагрид у которого в колонках стоит компонент headerCheck(на основе чекбокса), а в строках другой компонент itemCheck(тоже на основе чекбокса).
Мне надо реализовать функцию типа "отметить все". То есть при переключении чекбокса headerCheck, надо переключатьв соответствующее положение все чекбоксы в строках (itemCheck).

На данный момент представляю себе несколько решений:

1) Создать в компоненте itemCheck функцию selectAll() и вызывать её при переключении чекбокса в headerCheck. Но так не получается, потому что из компонента headerCheck не видна функция находящаяся в itemCheck.[Bindable] не помогает.
2) Создать такую функцию прямов headerCheck, и она будет переключать чекбоксы в itemCheck. Но не понятно как к этим чекбоксам обратиться.

может есть какая то функция наподобие document.getElementById() в javascript ??

Старый 13.02.2007, 16:02
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 4  
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
логичнее всего управлять нужно из датапровайдера, т.е. в датапровайдере скидываешь все "галки", а рендеры должны автоматом обновиться (гы гы если ты это реализовал).

Добро пожаловать в мир кастомных айтемрендеров, вас ждет незабываемая бесконечная долгая любовь, постигнув которую вы обретете покой...
__________________
33 коровы

Старый 13.02.2007, 16:07
asuri вне форума Посмотреть профиль Отправить личное сообщение для asuri Найти все сообщения от asuri
  № 5  
asuri

Регистрация: Oct 2006
Сообщений: 44
Чё то не сильно понятно.
Попробую сам разобраться, только ответьте мне на такой вопрос.
Как мне из компонента обратиться к объекту или переменной которая определена как public в родительском апликейшене??? Я из компонента вообще не вижу никких переменных апликейшена. Как с этим бороться? Опять же [Bindable] не помогает (

Старый 13.02.2007, 17:05
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 6  
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
смотри, ща я буду показывать мега фокусы(пошагово %) ):

шаг 1, делаем описание наших данных:
Код:
package
{
	import flash.events.IEventDispatcher;
	import flash.events.EventDispatcher;
	[Bindable]
	public class ItemVO extends EventDispatcher
	{
		public var label : String;
		public var checked : Boolean;
	}
}
Шаг 2. делаем атем рендер "заточеный" под наши данные:
Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100" height="20">
	<mx:CheckBox id="checker" label="{data.label}" selected="{data.checked}" change="{data.checked = checker.selected}" />
</mx:Canvas>
Шаг номер 3, наша мега аппликуха:
Код:
<?xml version="1.0" encoding="utf-8"?>
<!-- Tree control example. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*" layout="vertical">
	<mx:Script>
	<![CDATA[
		public function clearItems() : void
		{
			for (var i : Number=0; i<arcoltest.length; i++)
			{
				arcoltest.getItemAt(i).checked = false;
			}
		}		
	]]>
	</mx:Script>
	<mx:ArrayCollection id="arcoltest">
		<local:ItemVO  label="qewqw" checked="true" />
		<local:ItemVO  label="1" checked="true" />
		<local:ItemVO  label="2" checked="true" />
		<local:ItemVO label="1231" checked="true" />
		<local:ItemVO label="qweqwe" checked="true" />
	</mx:ArrayCollection>
<mx:List dataProvider="{arcoltest}" itemRenderer="CheckBoxItemRender" />

<mx:Button label="Clear all" click="clearItems()"/>

</mx:Application>
Усе фокус готов, ловкость рук и никакого мошенничества )
__________________
33 коровы

Старый 28.01.2009, 17:24
Narf31 вне форума Посмотреть профиль Отправить личное сообщение для Narf31 Найти все сообщения от Narf31
  № 7  
Narf31

Регистрация: Jan 2009
Сообщений: 9
этот код попонятней


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">


<mx:Script>
<![CDATA[
import mx.controls.Alert;

import mx.collections.ArrayCollection;


private function click():void {
for (var i : Number=0; i<myDP.length; i++)
{
var o:Object = myDP.getItemAt(i);
o.Sent = false;
myDP.setItemAt(o, i);
}



}

[Bindable]
private var myDP:ArrayCollection = new ArrayCollection([
{City:"Все регионы", Sent:true},
{City:"Альметьевск", Sent:true},
{City:"Астрахань", Sent:true},
{City:"Альметьевск", Sent:true},
{City:"Волгоград", Sent:true},
{City:"Волжский", Sent:true},
{City:"Вологда", Sent:true}
]);



]]>
</mx:Script>

<mxataGrid id="myDG"
dataProvider="{myDP}"
variableRowHeight="true"
width="474" height="250"
editable="true" horizontalCenter="24" y="10">
<mx:columns>
<mxataGridColumn dataField="Sent"
headerText=" "
itemRenderer="mx.controls.CheckBox"
rendererIsEditor="true"
width="25"
editorDataField="selected"/>
<mxataGridColumn dataField="City"
headerText=" "
editable="false"/>

</mx:columns >
</mxataGrid>

<mx:Button click="click()">

</mx:Button>


</mx:Application>

Старый 28.01.2009, 17:27
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Некропостинг у нас не в почёте, кроме того, код нужно оформлять тегами [code][/code].

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

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

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


 


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


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