【问题标题】:is there a dataProviderChange event for dropdownlist?下拉列表是否有 dataProviderChange 事件?
【发布时间】:2012-04-06 01:28:47
【问题描述】:

我有一种情况,在数据提供程序更改后未调用 SelectedItem 一个下拉列表。 有没有办法检测是否发生了这种变化? 谢谢

【问题讨论】:

  • 没有调用“SelectedItem”是什么意思?请详细说明。提供代码或更好的解释,我们可以为您提供帮助。
  • 应始终调用 selectedIndex 设置器并将其设置为 -1。 List 组件对这些东西总是有点麻烦。 (但话又说回来,dataProvider 设置器应该被调用)

标签: actionscript-3 apache-flex flex4.5 flex-spark


【解决方案1】:

Flex 框架中的几乎每个公共属性都有一个“propertyChanged”事件,该事件是从属性集方法分派的。它们主要用于绑定目的,但通常没有正式记录。

DropDownList 的 dataProvider set 方法确实调度了 dataProviderChanged 事件。代码在层次结构中位于多个层次,作为 SkinnableDataContainer 的一部分,或者如果您的“SkinnableDataContainer”皮肤有一个 dataGroup,它是从 DataGroup 调度的。

但是,此事件可能不会通过 MXML 中的代码提示公开。您必须在 ActionScript 中聆听它:

myList.addEventListener('dataProviderChanged', onDataProviderChanged);

请记住,无论 selectedItem 属性发生什么变化,都会在 dataProvider 更改时调度此事件。

【讨论】:

    【解决方案2】:

    你可以通过IndexChangeEvent监听DropDownList中selectedItem的变化,如下代码所示:

    <s:DropDownList id="dl_mydl"
      dataProvider="{dataProvider}"
      change="dropDownListChangeHandler(event)"
    />
    
    protected function dropDownListChangeHandler(event:IndexChangeEvent) : void
    {
     //DO SOMETHING
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      相关资源
      最近更新 更多