1

我在主数据网格右侧的选项卡式导航器(每个选项卡一个)上有两个自定义高级数据网格,其中列出了供用户选择的选项。当用户单击主数据网格上的行项目时,选项卡式导航器中的高级数据网格将加载适当的信息。问题是,在我最初加载用户所做的第一个选择后,当用户尝试进行第二个选择时,它会冻结。但是,如果用户决定在进行第二次选择之前切换选项卡(查看选项卡 1 和 2),一切都很好。如果在进行下一个选择之前只查看选项卡 1...崩溃..

可以在这里找到高级数据网格的源: http ://code.google.com/p/advanceddatagrid/source/browse/trunk/mergeableDataGrid/src/AdvancedDataGrid/AdvancedDataGrid.mxml?r=3

我已经修改了网格如何通过 xml 循环,但可以在下面的代码片段中看到

        public function createGrid(xml:XML):void
        {
            // create columns 
            var columns:ArrayList = new ArrayList();  

            var rows:ArrayCollection = new ArrayCollection(); 

            for each (var column:XML in xml.Columns.Column)
            {
                var col:AdvancedDataGridColumn = new AdvancedDataGridColumn();

                col.dataField = column.DataField.valueOf().toString(); 
                col.headerText = column.Name.valueOf().toString();
                col.dataTipField = column.Tooltip.valueOf().toString();
                col.showDataTips = true;

                columns.addItem(col);
            }

            this.dataProvider = xml.Rows.Row;

            this.groupedColumns = columns.toArray();
        }

这是我的标签式导航器代码

    <mx:TabNavigator id="tabNavigator"  width="100%" height="100%">         
        <s:VGroup width="100%"
                 label="Financial">
            <s:HGroup height="100%"
                      width="100%"
                      gap="0">
                <dataGrid:AdvancedDataGrid id="fundingGrid"
                                           itemEditBeginning="fundingGrid_itemEditBeginningHandler(event)"
                                           itemEditEnd="fundingGrid_itemEditEndHandler(event)"
                                           width="100%"
                                           height="100%"/>          

            </s:HGroup>
        </s:VGroup>
        <s:VGroup width="100%"
                 label="Quarterly Breakdown">
            <s:HGroup height="100%"
                     width="100%">
                <dataGrid:AdvancedDataGrid id="quarterlyBreakdownGrid"
                                           width="85%"
                                           height="100%"
                                           itemEditBeginning="quarterlyBreakdownGrid_itemEditBeginningHandler(event)"
                                           itemEditEnd="quarterlyBreakdownGrid_itemEditEndHandler(event)"/>     
                <s:Button id="btnSaveQuarterlyBreakdown"
                          label="Submit"
                          toolTip="Click to save program's quarterly funding."
                          click="btnSaveQuarterlyBreakdown_clickHandler(event)"/>

            </s:HGroup>
        </s:VGroup>
    </mx:TabNavigator>

当用户从网格中选择一个行项目时,高级数据网格将发送带有列名和行的 xml。这个 createGrid 方法在第一个代码片段中。

this.fundingGrid.createGrid(fundingXML);
this.quarterlyBreakdownGrid.createGrid(bdXML);

错误信息

错误:错误 #1023:发生堆栈溢出。在 mx.styles::StyleManager$/getStyleManager() 在 mx.styles::StyleProtoChain$/getStyleManager() 在 mx.styles::StyleProtoChain$/getTypeHierarchy() 在 mx.styles::StyleProtoChain$/matchesCSSType() 在 mx .core::UIComponent/matchesCSSType() 在 mx.styles::CSSSelector/matchesStyleClient() 在 mx.styles::CSSStyleDeclaration/matchesStyleClient() 在 mx.styles::StyleProtoChain$/matchStyleDeclarations() 在 mx.styles::StyleProtoChain $/getClassStyleDeclarations() at mx.core::UIComponent/getClassStyleDeclarations() at mx.styles::StyleProtoChain$/getMatchingStyleDeclarations() at mx.styles::StyleProtoChain$/initProtoChain() at mx.core::UIComponent/http: //www.adobe.com/2006/flex/mx/internal::initProtoChain() 在 mx.core::

有任何想法吗?我知道这可能看起来令人困惑.. 如有必要,愿意详细说明。

4

0 回答 0