2014-11-08 52 views
0

我是Flash和PHP的新手。我正在使用帶有PHP產品的FlashBuilder。我有一個連接到PHP腳本的數據網格,通過「啓用數據管理」功能來檢索和更新數據。如果我使用屏幕修改網格上的數據並調用.commit(),則一切正常。flex:如何以編程方式更新數據網格值

但是,我想以編程方式更改網格下的數據中的某些值,並在commit()時將這些更改返回到PHP腳本中的更新函數。叫做。但我無法弄清楚如何改變底層數據。

這裏是我試過的代碼:(我來回傳遞給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令牌緩存

有人可以幫助我指出正確的方向嗎?

感謝, 鮑勃

+0

什麼是'TPP1Service'?它沒有在上面的代碼 – CyanAngel 2014-11-10 14:06:04

+0

中定義,只是由flex中的數據嚮導生成的數據服務 – 2014-11-10 15:57:07

回答

0

它原來是這個問題是從PHP服務

0

您可以撥打gridDataProvider.refresh()刷新數據提供程序
或者你可以通過調用gridDataProvider.itemUpdated(myMailPiece)刷新單條記錄中收集;

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