2011-03-23 159 views
0

以下是示例代碼。使用hiearchical數據作爲dataProvider時AdvancedDataGrid中itemEditor的問題

雖然我在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> 

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> 

回答

0

{new ArrayCollection(optionData.source)}創建一個新的ArrayCollection。但是,底層Array始終是相同的對象(此處爲optionData)。

爲防止發生這種情況,您必須創建三個不同的陣列,其中包含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> 
+0

Thxs ..它工作正常。 – Eswaran 2011-03-25 06:48:26

+0

很高興知道。你應該把它標記爲答案。 – 2011-03-25 09:04:09

相關問題