この問題は私を夢中にさせました、そして私は本当にあなたたちが助けを必要としています。
mysqlからクエリされたデータを表示するデータグリッドがあります。ユーザーがデータベースに新しいレコードを追加した場合、データグリッドに新しい行を追加しようとしています。つまり、データベースにアップロードされたデータをdatagridに反映させたいのです。データグリッドは、私が追加した最初のレコードでのみ機能するようです。2番目のレコードを追加しようとすると、新しい行が追加されますが、最初の行も新しく更新されたレコードに変更されます。少しわかりづらいので、ここに絵を描きます。
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>
今は本当に必死です。どんな助けでもいただければ幸いです。