この問題は私を狂ってしまいました。本当にお手伝いが必要です。Flash Builder:Datagridでの奇妙な動作
私は、mysqlから照会されたデータを表示するデータグリッドを持っています。私はユーザーがデータベースに新しいレコードを追加する場合、私のデータグリッドに新しい行を追加しようとしています。つまり、アップロードされたデータをデータベースに反映させるためにdatagridが必要です。 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>
私は今、本当に必死です。どんな助けにも感謝します。
これは実際のコードではありませんか?それは動作しませんでした: 'addBtn_clickHandler()'でローカルに宣言されていたときに、 'addResult_resultHandler()'の変数 'newData'にアクセスしています。コンパイルすべきではありません。 – RIAstar