flex3 - 弹性 3.5.0;在数据提供程序更改时更新 ComboBox 显示列表

标签 flex3 combobox dataprovider displaylist

我有两个相关的组合框(大陆和国家)。当大陆 ComboBox 更改时,我从某个 URL 请求 XML。当我收到该 XML 时,我更改了国家/地区 ComboBox 的 DataProvider,如下所示:

public function displayCountryArray( items:XMLList ):void
        {
            this.resellersCountryLoader.alpha = 0;
            this.resellersCountry.dataProvider = items;
            this.resellersCountry.dispatchEvent( new ListEvent( ListEvent.CHANGE ) );
        }

我调度 ListEvent.CHANGE 因为我用它来改变另一个 ComboBox 所以请忽略它(和第一行)。

所以,我的问题是这样的:我从第一个大洲中选择“ASIA”,然后组合框 DATA 得到更新(我可以看到,因为第一个 ITEM 是带有标签 '23 countries' 的项目)。我点击组合然后我可以看到国家。

现在,我选择“非洲”,显示第一个项目,关闭组合框,然后当我单击它时,国家仍然是亚洲的国家。无论如何,如果我单击列表中的一个项目,则列表会正确更新,并且它具有正确的信息(正如我所说,它会影响其他 ComboBoxes )。所以唯一的问题是显示列表没有更新。

在这个函数中,我尝试了这些方法
  • 将 XMLList 转换为 XMLCollection 甚至 ArrayCollection
  • 添加 this.resellersCountry.invalidateDisplayList();
  • 触发 DATA_CHANGE 和 UPDATE_COMPLETE 等事件
    我知道他们没有多大意义,但我有点绝望。

  • 请注意,当我使用 3.0.0 SDK 时,这并没有发生。

    对不起,如果我很愚蠢,但弹性事件正在杀死我。

    最佳答案

    设置组合框下拉菜单的数据提供者似乎可以解决这个问题。

    this.resellersCountry.dataProvider = items;
    this.resellersCountry.dropdown.dataProvider = items;
    

    关于flex3 - 弹性 3.5.0;在数据提供程序更改时更新 ComboBox 显示列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2546017/

    相关文章:

    css - 如何正确设置 MX 列表的 Angular 半径并获得圆 Angular ?

    apache-flex - 柔性 : popupManager: TitleWindow: how to make the background transparent

    apache-flex - AS3/Flex : How to make mxml files loaded via ViewStack see their parent's variables, 等?

    c# - 多个 ComboBox.DisplayMemberPath 选项?

    actionscript-3 - 在 Adob​​e Flex 中动态创建菜单?

    c# - WPF 没有绑定(bind) ComboBox SelectedItem

    c# - 使用 EF 保存后在 MutliSelectComboBox 中显示项目集合的问题

    apache-flex - 如何将 xml 节点值绑定(bind)到 Flex 中的下拉数据字段?

    php - Yii dataProvider 数组给出的数据顺序

    java - DataProvider 不适用于外部整数