从组合中灵活选择值

发布于 2024-09-24 15:55:52 字数 609 浏览 1 评论 0原文

我的目标是创建一个通用函数,根据值选择组合框中的值。 (我的 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)

关于如何做到这一点的任何线索?

My goal is to create a generic function that selects a value in a combobox accoring to a value.
(My comoBox holds arrayCollection as dataProvider.)

The difficulty is infact to get a propertyname in runtime mode

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;
        }
    }
}

the line if (dp.getItemAt(i).propertyName==value)
is of course incorrect.
It should be arther something like: dp.getItemAt(i).getPropertyByName(propertyName)

Any clue on how to that ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苦行僧 2024-10-01 15:55:52

不要使用对象属性表示法。这样做:

dp.getItemAt(i)[propertyName]

Don't use Object Property notation. Do this:

dp.getItemAt(i)[propertyName]
尸血腥色 2024-10-01 15:55:52

除了 Flextras 所说的之外,您还可以重做 for 循环以使其更易于阅读:

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

In addition to what Flextras said, you could also redo your for loop to make it easier to read:

for each(var item:Object in dp) {
      if(item[propertyName] == value) {
          combo.selectedItem = item;
          return;
      }
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文