Проблема с itemEditor в AdvancedDataGrid при использовании высокотехнологичных данных в качестве dataProvider - PullRequest
0 голосов
/ 23 марта 2011

Ниже приведен пример кода.

Хотя я начинаю редактирование либо в столбце optionId, либо в столбце option, другие строки в этом же столбце также затрагиваются и отражают то же значение.Но когда я редактирую в других колонках, это работает нормально ... Не знаю причину.Если кто-нибудь может мне помочь.

 <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 Data:

 <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>

1 Ответ

0 голосов
/ 23 марта 2011

{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>
...