【问题标题】:Issue with itemEditor in AdvancedDataGrid when using hiearchical data as dataProvider将分层数据用作 dataProvider 时 AdvancedDataGrid 中的 itemEditor 出现问题
【发布时间】:2011-03-23 12:53:41
【问题描述】:

以下是示例代码。

当我开始在 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>

【问题讨论】:

    标签: apache-flex hierarchical-data advanceddatagrid itemeditor


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      相关资源
      最近更新 更多