有谁知道如何以编程方式扩展Flex中AdvancedDataGrid树列的节点?如果我使用树,我会使用这样的东西:
dataGrid.expandItem(treeNodeObject, true);
但我似乎无法访问AdvancedDataGrid中的此属性。
答案 0 :(得分:5)
AdvancedDataGrid也有一个expandItem()方法:
http://livedocs.adobe.com/flex/3/langref/mx/controls/AdvancedDataGrid.html#expandItem()
答案 1 :(得分:5)
复制在上述网址找到的样本并调用此函数:
private function openMe():void
{
var obj:Object = gc.getRoot();
var temp:Object = ListCollectionView(obj).getItemAt(0);
myADG.expandItem(temp,true);
}
答案 2 :(得分:2)
您还可以通过使用游标迭代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();
}
答案 3 :(得分:2)
想在此处添加AdvancedDataGrid,尽管有expandAll()
方法,但有一个名为displayItemsExpanded
的属性,设置为true
将扩展所有节点。
为了扩展特定的孩子,可以使用expandChildrenOf()
和expandItem()
方法,可以从上面给出的链接进行验证。