2

ArrayCollectionオブジェクトのソースとして使用されるオブジェクトがありますHierarchicalData。私のオブジェクトはおおよそ次のようになります。

ObjectName (String)
SubCollection (ArrayCollection)

HierarchicalDataAdvancedDataGrid で を使用して、データをグループ化された形式で表示しています。

ArrayCollectionを使用してデータをフィルタリングできますfilterFunction。ここでやりたいことは、 のレコードもフィルタリングしてSubCollection、フィルターに一致するアイテムのみが に表示されるようにすることAdvancedDataGridです。

で子行をフィルタリングする方法を教えてもらえますHierarchicalDataか?

4

1 に答える 1

2

この回答はあなたの質問に対する直接的な回答ではありませんが、背景の一部には役立つはずです。基本的に、私はあなたと同じ立場にあり、親ノードのタイプに応じて特定のデータセットを表示する必要があります。

この場合、HierarchicalData.getChildren(node:Object):Objectこれをオーバーライドして開始すると、最初のレベルの子をフィルター処理するためのアクセスが可能になり、サブ子のフィルター処理されたメソッドを任意の n 番目のレベルに呼び出すこともできます。

次に、拡張クラスを ADG のソースとして使用します。

疑似コードの例:

Class MyCollection extends HierarchicalData

override public function getChildren(node:Object):Object 
{
    if (node is a TopLevelObject)
        (node.children as ArrayCollection).filterFunction = filterSub;
        node.children.refresh();
    else if (node is a SubCollectionObject)
        (node.children as ArrayCollection).filterFunction = filterGrandChildren;
        node.children.refresh();

    // - OR -
        //a more complex process of allowing the sub-node to determine it's filter
        return node.filterSubCollectionGrandChildren();


    return node;
}
于 2012-10-11T15:09:24.917 に答える