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

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

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

Регистрация: Dec 2010
Сообщений: 177
Question Метод set data пользовательского itemRenderer AdvancedDataGridColumnGroup

Здравствуйте!
Подскажите, пожалуйста!
Есть пользовательский itemRenderer AdvancedDataGridColumnGroup.
Я перезаписываю метод set data(value:Object).
Мне нужно получить значение этой конкретной ячейки, но value заключает в себя значения всех ячеек в строке, а значение ячейки AdvancedDataGridColumnGroup сложносоставное, тобишь:
value = {par1:"", par2:{e111:{p1:"Нужное значение"}}};
Как мне получить нужное значение?
Есть-ли возможность выйти на значение через свойство dataField?

Вот проблемный код, простите за пространность (суть вопроса в комментариях кода):
Код AS3:
var column1:AdvancedDataGridColumn = new AdvancedDataGridColumn();
column1.dataField = "par1";					
var groupColumnviewDG:AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup();
groupColumnviewDG.dataField = "par2";
for each(var element:Object in newAr[0].group){
 var newDGColumn:AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup();
 newDGColumn.dataField = "e"+element.ID; // глубины newAr[0].group я не знаю
 var newGroupColumn1:AdvancedDataGridColumn = new AdvancedDataGridColumn();
 newGroupColumn1.dataField = "p1";
 newGroupColumn1.itemRenderer = new ClassFactory(ItemRendDiscNazva); // вот этот itemRenderer должен знать о своём значении
 var newGroupColumn2:AdvancedDataGridColumn = new AdvancedDataGridColumn();
 newGroupColumn2.dataField = "p2";
 var newGroupColumn3:AdvancedDataGridColumn = new AdvancedDataGridColumn();
 
 newDGColumn.children.push(newGroupColumn1, newGroupColumn2);
 groupColumnviewDG.children.push(newDGColumn);
}
viewDG.groupedColumns = new Array(column1, groupColumnviewDG);
viewDG.dataProvider = newAr;


Последний раз редактировалось zorexundra; 30.11.2011 в 18:28. Причина: Уточнение вопроса
Старый 01.12.2011, 00:20
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 2  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
В Flex3 itemRenderer надо было имплементить от mx.controls.listClasses.IDropInListItemRenderer, через метод listData устанавливать _dataField. Типа:
Код AS3:
[Bindable("dataChange")]
public function get listData():BaseListData
{
   return _listData;
}
public function set listData(value:BaseListData):void
{
   _listData = value;
   _dataGrid = value.owner as DataGrid;
   _dataField = (value as DataGridListData).dataField;
}
 
override public function set data(value:Object):void
{
   super.data = value;
   trace(value[_dataField]);
}
Из твоего примера не понятно, для Flex4 это или для Flex3

Добавлено через 1 минуту
P.S. для AdvancedDataGrid посмотри доки, может там немножко по другому.
__________________
Я просто добрый шутник.

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

Регистрация: Dec 2010
Сообщений: 177
scarbo, речь идёт о mx.controls.AdvancedDataGrid. Доки таких деталей не освещают.

Суть моей проблемы:
Я могу обратиться через параметр value метода set data() к поставщику данных:
value.Колонка1.Колонка1_2.Колонка1_2_1, но я не знаю количество колонок Колонка1_..., и мне требуется, чтобы мой itemRenderer Колонка1_?_1 сам узнал к какой колонке он относится (символ ?) и сам выявил собственное значение, которое отображается в некастомизированной ячейке.

Добавлено через 1 час 53 минуты
И ещё:
мой itemRenderer наследуется от mx.containers.Canvas.


Последний раз редактировалось zorexundra; 02.12.2011 в 11:54. Причина: Ложное сообщение
Старый 01.12.2011, 20:21
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 4  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Может расскажите, что вы хотите в итоге? По клику получать значение ячейки или что?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Dec 2010
Сообщений: 177
GBee, мне нужно реализовать алгоритм:
Если значение ячейки = 1, то отобразить в ячейке - 2.

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Тогда вы думаете не в том направлении, забудьте про UI бегайте по вашему массиву и меняйте что вам надо, потом отдавайте таблице.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 02.12.2011, 12:27
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 7  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
GBee, ИМХО, не лучший способ. Думаю ячейка сама должна себя представлять.

Моя проблема в том, что имея поставщик данных и не зная его структуры, я не могу получить значение конкретной ячейки, хотя сам AdvancedDataGrid прекрасно с этой задачей справляется.
Всё что мне удалось на этот момент, это в itemRenderer, наследуемом от AdvancedDataGridGroupItemRenderer выудить значение через label.text, но из-за того, что это значение зависит от визуализации компонента, я не могу его использовать.


Последний раз редактировалось zorexundra; 02.12.2011 в 12:46.
Старый 02.12.2011, 15:39
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 8  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
http://help.adobe.com/ru_RU/FlashPla...#labelFunction

Код AS3:
myLabelFunction(item:Object, column:DataGridColumn):String
{
    if(item[column.dateField]==1)
        return "2";
    return item[column.dateField];
}
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 02.12.2011, 17:58
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 9  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
GBee, в моём случае значение окажется undefined.
Моя ячейка выглядит так: item[другая_column.dateField][неизвестная_column.dateField][column.dateField]


Последний раз редактировалось zorexundra; 02.12.2011 в 18:03.
Создать новую тему Ответ Часовой пояс GMT +4, время: 22:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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