Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как получить данные из компонента DataGrid в каком-нибудь виде (массив, строка ...) (http://www.flasher.ru/forum/showthread.php?t=134371)

Seroy 28.12.2009 15:35

как получить данные из компонента DataGrid в каком-нибудь виде (массив, строка ...)
 
Суть в том, что я меняю значения в DataGrid (т.е.
Код AS1/AS2:

DataGrid.editable="true"

).

Как получить измененные значения? (измененные путем простого редактирования в клетках).

alexcon314 28.12.2009 15:52

У датагрида есть событие onCellEdit, кажется. Надо подписаться на него.
Если ж все данные чохом, то dg.dataProvider - это массив объектов вида
{column1:данные,column2:данные,...}
Скажем получить данные ячейки(12,3) можно так (нумерация с нуля)
dg.dataProvider[12].column3;
Ну, само собой column1, column2 и пр. - это должны быть названия колонок вашей датагрид.

Seroy 28.12.2009 16:12

спасибо! попробую.

вот еще откопал - кажись, то самое:

http://help.adobe.com/en_US/AS2LCR/F...LangRef_1.html

Код AS1/AS2:

my_dg.setSize(320, 240);
my_dg.editable = true;
 
// Add columns and make the first one not editable.
my_dg.addColumn("name");
my_dg.getColumnAt(0).editable = false;
my_dg.addColumn("score");
 
var myDP_array:Array = new Array();
myDP_array.push({name:"Clark", score:3135});
myDP_array.push({name:"Bruce", score:403});
myDP_array.push({name:"Peter", score:25});
 
// Set data source of DataGrid.
my_dg.dataProvider = myDP_array;
 
// Create listener object.
var myListener_obj:Object = new Object();
myListener_obj.cellEdit = function(evt_obj:Object) {
 // Retrieve location of cell that was changed.
 var cell_obj:Object = "("+evt_obj.columnIndex+", "+evt_obj.itemIndex+")";
 // Retrieve cell value that was changed.
 var value_obj:Object = evt_obj.target.selectedItem.score;
 trace("The value of the cell at "+cell_obj+" has changed to "+value_obj);
};
 
// Add listener object.
my_dg.addEventListener("cellEdit", myListener_obj);

Добавлено через 1 час 28 минут
Цитата:

Сообщение от alexcon314 (Сообщение 875788)
У датагрида есть событие onCellEdit, кажется. Надо подписаться на него.
Если ж все данные чохом, то dg.dataProvider - это массив объектов вида
{column1:данные,column2:данные,...}
Скажем получить данные ячейки(12,3) можно так (нумерация с нуля)
dg.dataProvider[12].column3;
Ну, само собой column1, column2 и пр. - это должны быть названия колонок вашей датагрид.

alexcon314, извините, что вас пытаю: тут же возник вопрос насчет клеток. Можно ли сделать, чтобы при нажатии на каждую клетку в ней открывался список (по сути, ComboBox), фактически - список всех ранее введенных значений столбца (но - в виде ComboBox, чтобы не расползалось как сибирское половодье)? или это уже из области фантастики?

тут вроде дилемма получается: если выделяешь клетку, то в ней и нужно писать, а если сделать ее недоступной для выделения, то как выбрать нужную для передачи ей значения отдельно стоящего ComboBox?


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

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