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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.12.2010, 06:13
vasyapunk вне форума Посмотреть профиль Отправить личное сообщение для vasyapunk Найти все сообщения от vasyapunk
  № 1  
Ответить с цитированием
vasyapunk
[+6 25.07.10]

Регистрация: Sep 2009
Сообщений: 35
По умолчанию datagrid dataprovider refresh

Здравствуйте!
У меня какая-то странная ошибка или я чего-то не доганяю...
Есть DataGrid, у него есть dataProvider="{myArrayCollection}", который Bindable..
Я заполняю myArrayCollection через пхп.. Заполнил..
Есть кнопка, при нажатии на которую должна удаляться запись из myArrayCollection и соответственно и из моего DataGrid-a..

Нажал, удалил запись через пхп.
Вытаскиваю из БД новый myArrayCollection, заполняю..И когда все должно завершиться выскакивает эта ошибка(ниже приведенная)..
Я так понял, что она изза того, что после заполнения я обновляю myArrayCollection.refresh();
Но разве так нельзя?

Код AS3:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at mx.controls.listClasses::ListBase/setSelectionIndicesLoop()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:6200]
	at mx.controls.listClasses::ListBase/http://www.adobe.com/2006/flex/mx/internal::commitSelectedIndices()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:6192]
	at mx.controls.listClasses::ListBase/adjustSelectionSettings()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3934]
	at mx.controls.listClasses::ListBase/updateDisplayList()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3676]
	at mx.controls::List/updateDisplayList()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\List.as:1003]
	at mx.controls.listClasses::ListBase/validateDisplayList()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3281]
	at mx.managers::LayoutManager/validateDisplayList()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:602]
	at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:675]
	at Function/http://adobe.com/AS3/2006/builtin::apply()
	at mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8460]
	at mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8403]
Помогите, кто с таким сталкивался пожалуйста, а то я уже часа 3 с этим мучаюсь и хз шо это такое..Раньше нормально всегда заполнял таблицы, удалял все...а тут вдруг такое..и не убирается..(

Старый 24.12.2010, 11:29
Lexxx_HU вне форума Посмотреть профиль Отправить личное сообщение для Lexxx_HU Найти все сообщения от Lexxx_HU
  № 2  
Ответить с цитированием
Lexxx_HU

Регистрация: Oct 2010
Сообщений: 67
во первых не понятно ваша строка -
Цитата:
Я заполняю myArrayCollection через пхп
приведите пожалуйста код. через HTTP сервис ?
во вторых при добавлении новых записей в массив рефреш делать не нужно, при addItem датагрид сам все перерисует.
рефреш надо делать если вы пытаетесь изменить какое то значение, при этом количество записей остается тем же.
судя по вашим словам
Цитата:
Вытаскиваю из БД новый myArrayCollection, заполняю
попробуйте сначала массив.removeAll(), а потом добавлять.

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

Старый 24.12.2010, 22:28
vasyapunk вне форума Посмотреть профиль Отправить личное сообщение для vasyapunk Найти все сообщения от vasyapunk
  № 3  
Ответить с цитированием
vasyapunk
[+6 25.07.10]

Регистрация: Sep 2009
Сообщений: 35
Да, через HTTP сервис обращаюсь к пхп-файлу, отсылая ему данные Постом и получая ответ ХМЛ и заношу каждую строку как объект в переменную myArrayCollection типа ArrayCollection..
Я просто удаляю через пхп запись и загружаю массив заново и пишет эту ошибку..

А при push() тоже перерисовывает?
Так а зачем тогда refresh?
Я прочитал, что refresh просто обновляет, перерисовывает...Или я не то что-то прочитал?


Последний раз редактировалось vasyapunk; 25.12.2010 в 00:49.
Старый 06.01.2011, 00:12
vasyapunk вне форума Посмотреть профиль Отправить личное сообщение для vasyapunk Найти все сообщения от vasyapunk
  № 4  
Ответить с цитированием
vasyapunk
[+6 25.07.10]

Регистрация: Sep 2009
Сообщений: 35
Так немного поразбирался, но еще больше запутался..
При любом изменении dataProvider-ра выскакивает та ошибка..
Например, если попытаться удалить из моей коллекции какой либо элемент myArrayCollection.removeItemAt(5); , где этот индекс 100% заполнен и не равен null...
Не понимаю почему и как...Если у когото была похожая ситуация - помогите пожалуйста!

Старый 11.01.2011, 19:48
Lexxx_HU вне форума Посмотреть профиль Отправить личное сообщение для Lexxx_HU Найти все сообщения от Lexxx_HU
  № 5  
Ответить с цитированием
Lexxx_HU

Регистрация: Oct 2010
Сообщений: 67
если можно приведите пожалуйста код, сложно так телепатически ориентироваться на словах, да еще в чужом коде

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
А при push() тоже перерисовывает?
У ArrayCollection нет метода push
Цитата:
Так а зачем тогда refresh?
Он нужен для применения изменений после присвоения filterFunction или sort.
Цитата:
рефреш надо делать если вы пытаетесь изменить какое то значение, при этом количество записей остается тем же.
Для этого есть itemUpdated()

vasyapunk, вы случайно не пытаетесь выделить элемент?

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

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

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


 


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


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