有谁知道如何以编程方式扩展 Flex 中 AdvancedDataGrid 树列的节点?如果我使用的是一棵树,我会使用这样的东西:
dataGrid.expandItem(treeNodeObject, true);
但我似乎无权访问 AdvancedDataGrid 中的此属性。
有谁知道如何以编程方式扩展 Flex 中 AdvancedDataGrid 树列的节点?如果我使用的是一棵树,我会使用这样的东西:
dataGrid.expandItem(treeNodeObject, true);
但我似乎无权访问 AdvancedDataGrid 中的此属性。
AdvancedDataGrid 也有一个 expandItem() 方法:
http://livedocs.adobe.com/flex/3/langref/mx/controls/AdvancedDataGrid.html#expandItem()
复制在上述 url 中找到的示例并调用此函数:
private function openMe():void
{
var obj:Object = gc.getRoot();
var temp:Object = ListCollectionView(obj).getItemAt(0);
myADG.expandItem(temp,true);
}
您还可以通过使用游标遍历 dataProvider 来打开节点。以下是我在指定级别打开所有节点的方法:
private var dataCursor:IHierarchicalCollectionViewCursor;
override public function set dataProvider(value:Object):void
{
super.dataProvider = value;
/* The dataProvider property has not been updated at this point, so call
commitProperties() so that the HierarchicalData value is available. */
super.commitProperties();
if (dataProvider is HierarchicalCollectionView)
dataCursor = dataProvider.createCursor();
}
public function setOpenNodes(numLevels:int = 1):void
{
dataCursor.seek(CursorBookmark.FIRST);
while (!dataCursor.afterLast)
{
if (dataCursor.currentDepth < numLevels)
dataProvider.openNode(dataCursor.current);
else
dataProvider.closeNode(dataCursor.current);
dataCursor.moveNext();
}
dataCursor.seek(CursorBookmark.FIRST, verticalScrollPosition);
// Refresh the data provider to properly display the newly opened nodes
dataProvider.refresh();
}
想在这里补充一点,尽管 AdvancedDataGrid 有一个expandAll()
方法,但它有一个名为 的属性displayItemsExpanded
,设置为true
将展开所有节点。
为了扩展特定的孩子,可以使用expandChildrenOf()
和expandItem()
方法,这可以从上面给出的链接中验证。