我遇到了一个有趣的一个,认为这是值得发布:AdvancedDataGrid问题(错误?) - 错误列中的披露图标。 (分层数据,Flex 3.5)
我在使用高级数据网格的情况下,我必须设置数据提供者在运行时使用分层数据。 Adobe的文档并没有真正涵盖这种事情(至少不是我可以挖掘到的级别)。
有没有人遇到过这个?
我唯一能想出来的东西有点冒失鬼,似乎引入了高级网格的披露图标的一些奇怪的行为。我在下面列出了测试案例:
advancedDataGridProblem.as:
import mx.collections.ArrayCollection;
public var dataProvider:ArrayCollection = new ArrayCollection([{label:"item1"},
{label:"item2", children:[{label:"subItem1"},{label:"subItem2"},
{label:"subItem3"}]},
{label:"item3"}]);
public function init():void{
//using callLater to ensure that the grid has been created before setting DP
this.callLater(setDataProvider,[dataProvider]);
}
public function setDataProvider(list:ArrayCollection):void{
heirData.source = list;
}
和MXML:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script source="advancedDataGridProblem.as"/>
<mx:AdvancedDataGrid id="advDG" width="100%">
<mx:columns>
<mx:AdvancedDataGridColumn headerText="What the heck?"/>
<mx:AdvancedDataGridColumn headerText="Label" dataField="label"/>
<mx:AdvancedDataGridColumn headerText="Column 2"/>
<mx:AdvancedDataGridColumn headerText="Column 3"/>
</mx:columns>
<mx:dataProvider>
<mx:HierarchicalData id="heirData"/>
</mx:dataProvider>
</mx:AdvancedDataGrid>
</mx:Application>
正如你可以看到,当你运行测试程序,它应该图标在Label栏中显示的内容实际上放置在“What the heck?”柱。如果您拖动标签列并试图将其与“什么?”交换。列中,图标保留在原来的位置,但奇迹般地,之前为标签列左对齐的标签现在已针对图标进行了适当的格式化。将标签列拖出插槽1将使网格恢复原始状态。
这是一个高于我的头 - 任何人有任何建议吗?
理想情况下,我想绕过这个黑客一起,只是在运行时按照惯例分配dataProvider。
在此先感谢!
我将很快用Adobe提交一份关于此问题的错误报告,并将该链接引入评论。