PhilFlash

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.

Obtenir les sources 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;
}

 

xhtml   css   cc   508   aaa
Me connaître  |  Me contacter