這個問題奇怪的行爲已經推動我瘋了,我真的很需要你們的幫助。Flash Builder中:在數據網格
我有示出被從MySQL查詢數據的數據網格。如果用戶將新記錄添加到數據庫,我試圖向我的數據網格添加一個新行。換句話說,我想讓datagrid反映數據庫中上傳的數據。 datagrid似乎只適用於我添加的第一個記錄。如果我嘗試添加第二條記錄,則會添加新行,但它也會將第一行更改爲新更新的記錄。我知道這有點難以理解,所以我在這裏畫一幅畫。
DATAGRID
id name number
1 test1 111
2 test2 222
可以說,我添加一個新的記錄和數據網格將
id name number
1 test1 111
2 test2 222
3 test3 333 //new record, works fine.
但如果我添加另一條記錄,它將成爲
id name number
1 test1 111
2 test2 222
4 test4 444 //old record, the values change to the newest record.
4 test4 444 //new record, but also change the previous record
如果我再添加另一條記錄,它會變成
id name number
1 test1 111
2 test2 222
5 test5 555 //first record, the values change to the newest record.
5 test5 555 //second record, the values change to the newest record.
5 test5 555 //newest record, change the previous 2 records
我已經做了任何我能想到的調試,但仍然沒有運氣。 以下是我的代碼:
// my php data service
<s:CallResponder id="addResult" result="addResult_resultHandler(event)" />
<script>
//The handler after the user click ADD button
protected function addBtn_clickHandler(event:MouseEvent):void
{
var newData:object = new Object();
newData.test1=formField1.text;
newData.test2=formField2.text;
newData.test3=formField3.text;
newData.test4=formField4.text;
addResult.token=Service.createJob(newData);
}
//the result handler for data service.
protected function addResult_resultHandler(event:ResultEvent):void
{
//jobData is my dataProvider in my datagrid component
//not sure why addItem() would mess me up so badly...
//newData is an Object created after user click the update
//button
jobDG.jobData.addItem(newData);
}
Mxml
<components:dataGridPanel id="jobDG"
jobData="{getJobsResult.lastResult}"/>
My datagrid component
mxml
<s:DataGrid id="dg" editable="true" x="5" y="3" width="734" height="253">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="test1" headerText="text1">
</s:GridColumn>
<s:GridColumn dataField="test2" headerText="text2">
</s:GridColumn>
<s:GridColumn dataField="test3" headerText="text3">
</s:GridColumn>
<s:GridColumn dataField="test4" headerText="text4">
</s:GridColumn>
</s:ArrayList>
</s:columns>
<s:typicalItem>
<fx:Object text1="aaaaa" text2="bbbbb" text3="ccccc" text4="dddddd">
</fx:Object>
</s:typicalItem>
<s:AsyncListView list="{jobData}" />
</s:DataGrid>
我真的絕望了。任何幫助將不勝感激。
這不是你真正的代碼,是嗎?它無法工作:在'addBtn_clickHandler()'中聲明本地聲明時,您正在'addResult_resultHandler()'中訪問變量'newData'。它甚至不應該編譯。 – RIAstar 2012-04-06 08:28:23