Problema con ItemEditor in AdvancedDataGrid quando si utilizza i dati Hiearchical come dataprovider
-
29-10-2019 - |
Domanda
Di seguito è riportato il codice di esempio.
Mentre inizio a modificare nella colonna OpzioneID o nella colonna Opzione, anche le altre righe della stessa colonna vengono interessate e riflettendo lo stesso valore. Ma quando sto modificando in altre colonne funziona bene ... non so il motivo. Se qualcuno potesse aiutarmi.
<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>
Dati Hiearchical:
<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>
Soluzione
{new ArrayCollection(optionData.source)}
crea un nuovo ArrayCollection
. Tuttavia, il sottostante Array
è sempre lo stesso oggetto (qui optionData
).
Per evitare che ciò accada, dovrai creare tre diversi array contenenti istanze diverse di CAEventOption
. Qualcosa collega questo:
<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow