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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.10.2011, 22:02
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 1  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
По умолчанию DataGrid, проблема с добавлением строк в таблицу

Сижу уже второй час, перерыл весь гугл, так и не нашел ответа на такую тупость:
Есть массив строк, язык в которых выбирается в зависимости от настроек приложения:
Код AS3:
private var _dataGridColumns:Array 	= Setup.language == 3 ? ["№ ", "Room Creator", "Room ID"] : ["№ ", "Создатель Комнаты", "ID Комнаты"];
Есть DataGrid, в которую добавляю колонки следующим образом:
Код AS3:
_dgColumn1 = new DataGridColumn(_dataGridColumns[0]);
_dgColumn1.width = 40;
_dgColumn2 = new DataGridColumn(_dataGridColumns[1]);
_dgColumn2.width = 475;
_dgColumn3 = new DataGridColumn(_dataGridColumns[2]);
_dataGrid = new DataGrid();
_dataGrid.addColumn(_dgColumn1);
_dataGrid.addColumn(_dgColumn2);
_dataGrid.addColumn(_dgColumn3);
и есть метод, призваннй заполнять таблицу строками:

Код AS3:
private function populateDataGrid():void {
	if (!_dataGrid) return;
            var col1:String = _dataGridColumns[0];
            var col2:String = _dataGridColumns[1];
            var col3:String = _dataGridColumns[2];
	_dataGrid.addItem( { col1 : "1", col2 : "Чувак Чувакович Чуваков", col3 : "100500" } );
}
При таком подходе я получаю совершенно пустую строку.

Хотя если сделать так:
Код AS3:
private function populateDataGrid():void {
	if (!_dataGrid) return;
	_dataGrid.addItem( { "№ " : "1", "Room Creator" : "Чувак Чувакович Чуваков", "Room ID" : "100500" } );
}
То все отлично заполняется.
Вопрос: почему не работает первый вариант?
Для меня совершенно не допустимо передавать фиксированные строки в качестве ключей. Полюбому надо переменные.
Как побороть проблему?

Добавлено через 9 минут
Поторопился с темой. Только создал, и сразу же сам нашел решение.
Если кому-то пригодится, то
Нужно название колонки ставить как headerText, а в качестве параметра конструктора передавать название переменной, через которую будет обращение:
Код AS3:
_dgColumn1 = new DataGridColumn("FirstCol");
_dgColumn1.headerText	= _dataGridColumns[0];
А далее уже так:
Код AS3:
_dataGrid.addItem( { FirstCol : "1", _dgColumn2 : "Чувак Чувакович Чуваков", _dgColumn3 : "100500" } );

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

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

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


 


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


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