![]() |
|
|
![]() |
![]() |
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
Регистрация: Apr 2012
Сообщений: 32
|
![]() Здравствуйте! Есть у меня ArrayCollection
var initDG2:ArrayCollection = new ArrayCollection([ {Column1:'x11', Column2:'x12', Column3:'x13'} {Column1:'x21', Column2:'x22', Column3:'x23'} {Column1:'x31', Column2:'x32', Column3:'x33'} ]); Пользователь может вносить изменения в таблицу. Как можно сделать, чтобы эти изменения сохранялись в initDG2? Т.е. при изменении текста в ячейке изменялся соответственный элемент в ArrayCollection. Спасибо большое. |
|
|||||
1. Кажется у вас в синтаксисе ошибка - объекты нужно через запятую.
2. 3. Примерно так:
__________________
In Code We Trust |
|
|||||
Регистрация: Apr 2012
Сообщений: 32
|
Спасибо. Уважаемый Astraport, не могли бы Вы посмотреть следующую тему
http://flasher.ru/forum/showthread.php?t=179022 Там вопрос о повороте HeaderText в DataGrid. Спасибо ещё раз. Добавлено через 51 час 13 минут Извините, Astraport. А если изменяется только один элемент, т.е. только в одном Column, то как делать? Пробовал так initDG2[myGrid2.selectedIndex].setItemAt(xxx,2); т.е. заношу значение переменной xxx в initDG2[myGrid2.selectedIndex] на второе место (в Column2). но выскакивает ошибка. |
|
|||||
Могу ошибаться, не могу проверить, но примерно так:
__________________
In Code We Trust |
|
|||||
Регистрация: Apr 2012
Сообщений: 32
|
Astraport спасибо, но не работает. Беда какая-то. С первой строкой всё в порядке. Пользователь внёс данные в ячейку Column1 и ячейку Column2. В третью ячейку заносится автоматически, например, их сумма. Ок, в провайдере это есть. Начинаем работать со второй строкой. Заполнили первую и вторую ячейки и вместо того, чтобы в третьей появилась сумма, весь провайдер обнуляется - во всех строках все ячейки становятся пустыми. Блин. Задача простая. Не могу понять, где неточность. Весь код:
[Bindable] var initDG2:ArrayCollection = new ArrayCollection([ {Column1:'', Column2:'', Column3:''}, {Column1:'', Column2:'', Column3:''}, {Column1:'', Column2:'', Column3:''} ]); private function func3(item:Object, column:DataGridColumn):String var string3:String=(Number(item.Column1)+Number(item.Column2)).toString(); initDG2[myGrid2.SelectedIndex]=string3; return string3; } <mx:DataGrid id="myGrid2" dataProvider="{initDG2}" editable="true" selectable="true"> <mx:columns> <mx:DataGridColumn dataField="Column1"/> <mx:DataGridColumn dataField="Column2"/> <mx:DataGridColumn dataField="Column3" editable="false" labelFunction="func3"/> </mx:columns> </mx:DataGrid> Извините, в определении функции конечно |
|
|||||
Во-первых, обращаться к АС нужно initDG2.setItemAs();
Во-вторых, мне кажется нельзя одновременно через labelFunction изменять и AC и отображение. Правильнее менять AC и она уже отобразит все как нужно. В данном случае это можно сделать через itemEditEnd http://livedocs.adobe.com/flex/3/htm...leditor_7.html
__________________
In Code We Trust |
|
|||||
Регистрация: Apr 2012
Сообщений: 32
|
Уважаемый Astraport! Спасибо большое! Действительно, через itemEditEnd всё работает!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:47. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|