Что именно я здесь делаю не так?Попытка заполнить и ArrayCollection с объектом - PullRequest
0 голосов
/ 04 марта 2011
public function capturaPermisos():ArrayCollection{
                var arrayColl:ArrayCollection = new ArrayCollection();
                for(var i:int=0; i < dataProvider.length; i++){
                    object.idModulo = dataProvider[i].idModulo;
                    object.consultar = dataProvider[i].consultar;
                    object.agregar = dataProvider[i].agregar;
                    object.modificar = dataProvider[i].modificar;
                    object.eliminar = dataProvider[i].eliminar;
                    arrayColl[i].addItem(object);
                }
                return arrayColl;
            }

dataProvider происходит из сетки данных, отсюда и цикл. Объект объявлен глобально вне функции.

for each(var per:Object in adgPermisos.dataProvider)
                {
                    permiso.idModulo = per.idModulo;
                    permiso.consultar = per.consultar;
                    permiso.agregar = per.agregar;
                    permiso.modificar = per.modificar;
                    permiso.eliminar = per.eliminar;
                    permisos.addItem(permiso);
                }

Второй цикл делает точно такой же неправильный результат.

Сохраняет последний реестр моего поставщика данных во всех 3 строках массива (длина dataprovider.length равна 3)

Мой dataProvider тоже массив arrayCollection, но это не тот Arrcooll, который заполняет мой Datagrid. Когда я хочу отправить свои данные на сервер, в мою сетку данных добавляются различные значения из флажков, и рендеринг arrayCollection отличается от того, который был при заполнении сетки данных.

Я просто хочу заполнить другую коллекцию arrayCollection, чтобы отправить ее на мой веб-сервис java следующим образом:

1 Ответ

1 голос
/ 04 марта 2011

«Сохраняет последний реестр моего поставщика данных во всех 3 строках массива коллекции»: вы, вероятно, ссылаетесь на один и тот же объект [permiso] в цикле 3 раза.В результате вы добавляете один и тот же объект 3 раза и снова меняете этот же объект 3 раза.(В результате все 3 записи в вашем разрешении содержат один и тот же объект, который был изменен 3 раза).Попробуйте следующий код для решения проблемы: </p> <pre><code> for each(var per:Object in adgPermisos.dataProvider) { var newItem : Object = ObjectUtil.clone(permiso); newItem.idModulo = per.idModulo; newItem.consultar = per.consultar; newItem.agregar = per.agregar; newItem.modificar = per.modificar; newItem.eliminar = per.eliminar; permisos.addItem(newItem); }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...