2014-11-08 2 views
0

Я новичок в Flash и PHP. Я использую FlashBuilder с продуктом PHP. У меня есть сетка данных, которая связана с PHP-скриптом, который извлекает и обновляет данные с помощью функции «Включить управление данными». Если я изменяю данные на сетке, используя экран и вызываю .commit(), все работает нормально.flex: Как обновить значения datagrid программно

Однако я хотел бы программным образом изменить некоторые значения в данных, которые находятся в нижней части сетки, и вернуть эти изменения в функцию обновления в скрипте PHP, когда commit(). называется. Но я не могу понять, как изменить базовые данные.

Вот код, который я пробовал: (. Объект, который я прохожу туда и обратно в PHP скрипт является вызов почтового отправления Я хочу, чтобы установить поле WORKORDERNUMBER в каждом ряду данных)

var gridDataProvider : AsyncListView = dataGrid.dataProvider as AsyncListView; 
var myMailPiece:MailPiece = gridDataProvider.getItemAt(0) as MailPiece; 
var myWorkOrderNumber:String = myMailPiece.WORKORDERNUMBER; 

myMailPiece.WORKORDERNUMBER="NEWWO"; 
(dataGrid.dataProvider).setItemAt(myMailPiece,0); 

trace("about to commit"); 
TPP1Service.commit(); 

Когда я выполняю код сценария выше, я получаю следующее сообщение, когда выполняется commit(): MessageBatch.applyTokenChain: кеш тома emtpy

Может кто-нибудь помочь указать мне в правильном направлении?

Спасибо, Bob

+0

Что такое 'TPP1Service'? он не определен в приведенном выше коде – CyanAngel

+0

просто службой данных, которая была сгенерирована мастером данных в flex –

ответ

0

оказалось, что проблема с сервисом PHP

0

Вы можете позвонить gridDataProvider.refresh() обновить DataProvider
В качестве альтернативы Вы можете обновить одну запись в коллекции по телефону gridDataProvider.itemUpdated(myMailPiece);

var gridDataProvider : AsyncListView = dataGrid.dataProvider as AsyncListView; 
var myMailPiece:MailPiece = gridDataProvider.getItemAt(0) as MailPiece;  
myMailPiece.WORKORDERNUMBER="NEWWO"; 
gridDataProvider.itemUpdated(myMailPiece);