2012-03-09 11 views
0

プロパティを定義して、mx:Listに表示される要素の数を制限できますか? RowCountプロパティの設定については読んだことがありますが、何も表示されません。 これを行うにはフィルタを適用できますか?私の意図は、リスト/アレイコレクションからアイテムを削除しないようにすることでしたが、単にそれらを隠すだけでした。これはできますか?Flex Listの制限要素数

答えて

1

を別のオプションは、新しいArrayCollectionのを使用して、あなたのを取得することですあなたの大切なのArrayCollectionからの限定アイテムは:

//get first 10 elements 
myArrayCollection = new ArrayCollection(myBigArrayCollection.toArray().slice(0,9)); 

あなたはポケットベルで作業したい場合、あなたは、ユーザーがオンになっているどのページを追跡するカウンタを保持し、あなたの大きな配列のコレクションから次の要素を得ることができます。例:

//this is just a (very) simple example 
//page = integer (counter) for knowing which page the user is on 
page = 0; 
page_low = page*10; 
page_high = page_low + 9; 
myArrayCollection = new ArrayCollection(myBigArrayCollection.toArray().slice(page_low,page_high)); 

コメントを

2

ArrayCollectionなどのCollectionクラスを使用して、元のソースデータを変更せずに、リストベースのクラスの表示からアイテムを非表示にすることができます。

これらを読んでくださいdocs on Collection filtering。引用する

あなたは に、ソース・データ・オブジェクトのサブセットをコレクション内のデータビューを制限するフィルタ機能を使用しています。この関数は、コレクション項目に対応する単一の オブジェクトパラメータを取る必要があり、 は、 ビューに項目を含めるかどうかを指定するブール値を返す必要があります。ソートの場合と同様に、フィルタ関数を指定または変更する場合は、 コレクションでrefresh()メソッドを呼び出して、 のフィルタ結果を表示する必要があります。 Mで始まる文字列だけが含まれている に文字列の配列のコレクションビューを制限するには、例えば、次のよう フィルタ機能を使用します。

public function stateFilterFunc(item:Object):Boolean 
{ 
    return item >= "M" && item < "N"; 
} 
+0

彼のおかげで(まだフィルタを使用しては、よりエレガントな解決策です)。しかし、私はそれらの位置に基づいて項目をフィルタリングしたい。ある特定の視点では、最初の20点を表示したい、もう1つの視点はそれらのすべてを表示したい。これに基づいてフィルタリングできますか? – Rui

+0

@Rui "位置に基づいてフィルタ"とは何を意味するのか分かりません。あなたがそれを定義することができれば;あなたはおそらくそれをコード化することができます。 2つの別々のリストに対して同じdataProviderを使用していますか? – JeffryHouser

+0

私は既に日付で項目をフィルタリングしています。ある州では、私のリストに最初の20項目を提示したい、他の州ではそれらのすべてを表示したい。 – Rui

関連する問題