我在主数据网格右侧的选项卡式导航器(每个选项卡一个)上有两个自定义高级数据网格,其中列出了供用户选择的选项。当用户单击主数据网格上的行项目时,选项卡式导航器中的高级数据网格将加载适当的信息。问题是,在我最初加载用户所做的第一个选择后,当用户尝试进行第二个选择时,它会冻结。但是,如果用户决定在进行第二次选择之前切换选项卡(查看选项卡 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::
有任何想法吗?我知道这可能看起来令人困惑.. 如有必要,愿意详细说明。