DataGrid avec filtre par ComboBox dynamique
Flash MX 2004 et Flash 8
Un exemple de filtre de DataGrid par ComboBox.
Les valeurs possibles de la ComboBox sont calculées dynamiquement selon les valeurs du DataSet.
dgcbfilter.zip (393 Ko)
Explication
Le dataProvider de la ComboBox est calculé dynamiquement. Sur la méthode afterLoaded du DataSet, on recherche toutes les valeurs possibles (de ville dans cet exemple). Pour ceci, on itère sur le DataSet.
Le code est le suivant :
personne_ds.addEventListener("afterLoaded", Delegate.create(this, doCreateDataComboBox));
function doCreateDataComboBox():Void {
var dataProvider:Array = personne_ds.items;
var len:Number = dataProvider.length;
var resultDP:Array = [];
for (var i:Number = 0; i<len; i++) {
var currentValue:String = dataProvider[i].ville;
var found:Boolean = false;
var maxDP:Number = resultDP.length;
for (var j:Number = 0; j<maxDP; j++) {
if (resultDP[j].label == currentValue) {
found = true;
break;
}
}
// Add the new value
if (!found) {
var newObject:Object = {label:currentValue};
resultDP.push(newObject);
}
}
// Sort result DataProvider
resultDP.sortOn("label");
// Add the first item
resultDP.unshift({label:"-- Sélectionnez une ville --"});
// set the dataProvider for comboBox
filter_cb.dataProvider = resultDP;
}