0

この arrayCollection を使用して、Flex 3 Datagrid を設定します。また、この arrayCollection を使用して、コンボボックスに Name ノードを設定したいと思います。

arrayCollection では、Name が 2 回リストされています。Datagrid に 2 つの行があります。

ComboBox の labelfield を Name に設定すると、ComboBox メニューに Name が 2 回表示されます。このarrayCollectionを使用して、各名前をコンボボックスに1回だけリストする方法はありますか?

Name の別のループと配列のコレクションをいつでも作成できますが、もっと良い方法があるかどうか疑問に思っていました。

    var i:uint; 
    for (i=0; i<myArray.length; i++){
        myDGArray = [
         {Name: myArray[i].Name, Subject: 'Math:', Pass: myArray[i].math_pass, Fail: myArray[i].math_fail},
         {Name: myArray[i].Name, Subject: 'Reading:', Pass: myArray[i].reading_pass, Fail: myArray[i].reading_fail}
                             ]
                }

myAC=new ArrayCollection(myDGArray);

ありがとうございました。

-ラクシュミディ

4

1 に答える 1

1

私は少し混乱しています。コード サンプルに基づいて、同じ名前が dataProvider で 2 回使用されているため、ComboBox に名前が 2 回リストされます。

dataProvider を 2 つの個別の ListCollectionView オブジェクトに変換し、各オブジェクトに異なるフィルタリングを提供し、それらをそれぞれ別の dataProvider として使用することを検討してください。

疑似コードでは、これは私がそれを行う方法です:

public var comboBoxCollection : ListCollectionView = new ListCollectionView(myAC );
public var dataGridCollection : ListCollectionView = new ListCollectionView(myAC );

重複する名前を持つエントリを除外するために、comboBoxCollection にフィルタリングを適用します。コレクション フィルタリングの詳細については、ドキュメントを参照してください

于 2010-08-11T18:35:51.333 に答える