hireactical dataをDataProviderとして使用する場合のAdvancedDatagridのItemeditorの問題
-
29-10-2019 - |
質問
以下はサンプルコードです。
OptionID列またはオプション列で編集を開始している間、同じ列の他の行も影響を受け、同じ値を反映します。しかし、私が他の列で編集しているとき、それは正常に動作しています...理由を知りません。誰かが私を助けることができれば。
<mx:AdvancedDataGrid id="electionGrid" width="100%" height="70%" folderOpenIcon="{null}" folderClosedIcon="{null}" defaultLeafIcon="{null}" editable="true">
<mx:dataProvider>
<mx:HierarchicalData source="{electionSummary}" childrenField="options"/>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="dbProduct" headerText="DB Product" editable="false"/>
<mx:AdvancedDataGridColumn dataField="entitledQty" headerText="Entitled Quantity" editable="false"/>
<mx:AdvancedDataGridColumn dataField="entityId" headerText="Entity Id" editable="false"/>
<mx:AdvancedDataGridColumn dataField="entityName" headerText="Entity Name" editable="false"/>
<mx:AdvancedDataGridColumn dataField="eventStatus" headerText="Event Status" editable="false"/>
<mx:AdvancedDataGridColumn dataField="optionId" headerText="Option Id" itemEditor="mx.controls.TextInput" editorDataField="text"/>
<mx:AdvancedDataGridColumn dataField="option" headerText="Description" itemEditor="mx.controls.TextInput" editorDataField="text"/>
</mx:columns>
</mx:AdvancedDataGrid>
ハイアカルデータ:
<mx:ArrayCollection id="optionData">
<model:CAEventOption optionId="12345" option="Option1"/>
<model:CAEventOption optionId="56789" option="Option2"/>
<model:CAEventOption optionId="89756" option="Option3"/>
</mx:ArrayCollection>
<mx:ArrayCollection id="electionSummary">
<model:ElectionStatusSummary dbProduct="Global PB" entitledQty="54500" entityId="DEM0001" entityName="Hedge Fund Long Short Period"
eventStatus="Awaiting Election" options="{new ArrayCollection(optionData.source)}"/>
<model:ElectionStatusSummary dbProduct="Global PB" entitledQty="54500" entityId="DEM0001" entityName="Hedge Fund Long Short Period"
eventStatus="Awaiting Election" options="{new ArrayCollection(optionData.source)}"/>
<model:ElectionStatusSummary dbProduct="Global PB" entitledQty="54500" entityId="DEM0001" entityName="Hedge Fund Long Short Period"
eventStatus="Awaiting Election" options="{new ArrayCollection(optionData.source)}"/>
</mx:ArrayCollection>
解決
{new ArrayCollection(optionData.source)}
新しいものを作成します ArrayCollection
. 。ただし、根底にある Array
常に同じオブジェクトです(ここで optionData
).
これを防ぐには、の異なるインスタンスを含む3つの異なる配列を作成する必要があります CAEventOption
. 。これをリンクするもの:
<mx:ArrayCollection id="electionSummary">
<model:ElectionStatusSummary dbProduct="Global PB" entitledQty="54500" entityId="DEM0001"
entityName="Hedge Fund Long Short Period" eventStatus="Awaiting Election">
<model:options>
<mx:ArrayCollection id="optionData">
<model:CAEventOption optionId="12345" option="Option1"/>
<model:CAEventOption optionId="56789" option="Option2"/>
<model:CAEventOption optionId="89756" option="Option3"/>
</mx:ArrayCollection>
</model:options>
</model:ElectionStatusSummary>
<model:ElectionStatusSummary dbProduct="Global PB" entitledQty="54500" entityId="DEM0001"
entityName="Hedge Fund Long Short Period" eventStatus="Awaiting Election">
<model:options>
<mx:ArrayCollection id="optionData">
<model:CAEventOption optionId="12345" option="Option1"/>
<model:CAEventOption optionId="56789" option="Option2"/>
<model:CAEventOption optionId="89756" option="Option3"/>
</mx:ArrayCollection>
</model:options>
</model:ElectionStatusSummary>
<model:ElectionStatusSummary dbProduct="Global PB" entitledQty="54500" entityId="DEM0001"
entityName="Hedge Fund Long Short Period" eventStatus="Awaiting Election">
<model:options>
<mx:ArrayCollection id="optionData">
<model:CAEventOption optionId="12345" option="Option1"/>
<model:CAEventOption optionId="56789" option="Option2"/>
<model:CAEventOption optionId="89756" option="Option3"/>
</mx:ArrayCollection>
</model:options>
</model:ElectionStatusSummary>
</mx:ArrayCollection>
所属していません StackOverflow