flex从Combo中选择值

时间:2010-09-22 16:10:02

标签: flex flex3

我的目标是创建一个通用函数,根据值选择组合框中的值。 (我的comoBox将arrayCollection保存为dataProvider。)

难以在运行时模式下获取属性名称

public function selectComboByLabel(combo:ComboBox , propetryName:String, value:String):void {
    var dp:ArrayCollection = combo.dataProvider as ArrayCollection;
    for (var i:int=0;i<dp.length;i++) {
        if (dp.getItemAt(i).propertyName==value) {
            combo.selectedIndex = i;
            return;
        }
    }
}

行if(dp.getItemAt(i).propertyName == value) 当然是不正确的。 它应该是这样的:dp.getItemAt(i).getPropertyByName(propertyName)

关于如何做到的任何线索?

2 个答案:

答案 0 :(得分:2)

不要使用Object Property表示法。这样做:

dp.getItemAt(i)[propertyName]

答案 1 :(得分:2)

除了Flextras所说的内容之外,您还可以重做for循环以便于阅读:

for each(var item:Object in dp) {
      if(item[propertyName] == value) {
          combo.selectedItem = item;
          return;
      }
  }