Dans les exemples sur la DataFilterLib précédent, on a vu comment faire des filtrages simple, que ce soit par valeur ou par intervalle. Ces fonctionnalités étaient "assez" facilement reproduisibles avec des filterFunctions mais on va maintenant voir une des principales fonctionnalités de la DataFilterLib, le filtrage de données selon plusieurs filtres.
Le filtrage avec plusieurs DataFilterParameters est très simple puisqu'il suffit d'ajouter des DataFilterParameters au DataFilterSet principal. Les filtres seront ainsi combinés entre eux. N'importe quelle combinaison de filtres est possible, y compris un mélange de filtres type SingleValue et d'Interval.
Voici par exemple le DataFilterSet utilisé dans l'exemple suivant:
<filter:DataFilterSet id="filterSet"
data="{productData}">
<filter:dataFilterParameters>
<filter:DataFilterParameters id="tstIntervalParameters"
filterType="{DataFilterType.INTERVAL}"
filterKeys="{'productPrice'}"
filterOperator="{DataFilterIntervalOperator.INTERVAL_CLOSED}"
filterValues="{hsProductPrice.values}"
active="{activeIntervalCB.selected}"
invert="{invertIntervalCB.selected}"/>
<filter:DataFilterParameters id="tstMultiValueParameter"
filterType="{DataFilterType.SINGLE_VALUE}"
filterKeys="productType"
filterOperator="{DataFilterSingleValueOperator.EQUALS_TO}"
filterValues="{singleValuesList.selectedItems}"
invert="{invertListCB.selected}"
active="{activeListCB.selected}"/>
<filter:DataFilterParameters id="tstSingleValueParameter"
filterType="{DataFilterType.SINGLE_VALUE}"
filterKeys="{textFieldCB.selectedItem}"
filterOperator="{textOperatorCB.selectedItem}"
filterValues="{stringFilter.text}"
active="{activeTextCB.selected}"
invert="{invertTextCB.selected}"/>
</filter:dataFilterParameters>
</filter:DataFilterSet>
On a ici 3 filtres, 2 de type Singlevalue et un de type Interval. Le nombre de filtre n'est pas limité au sein d'un DataFilterSet.
Démonstration en ligne (onglet "Multiple Filters")
L'exemple suivant montre comment mettre en place de multiples filtres sur un même ArrayCollection. On peut ainsi facilement trouver les produits de type Home et Electro entre 80 et 250 euros. Toutes les combinaisons sont possibles. Pour intégrer ce genre de filtres dans votre application Flex, il vous suffit de lier les filtres aux bon champs de votre donnée et le tour est joué









Commentaires récents