flex3 – Flex 3.5.0;在dataprovider更改时更新ComboBox显示列表

前端之家收集整理的这篇文章主要介绍了flex3 – Flex 3.5.0;在dataprovider更改时更新ComboBox显示列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个相关的ComboBoxes(大陆和国家).当大陆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个国家’的项目).我点击组合然后我可以看到国家.

现在,我选择“非洲”,第一个项目显示,ComboBox关闭,然后当我点击它时,这些国家仍然是来自亚洲的国家.无论如何,如果我单击列表中的项目,那么列表正确更新,并且它具有正确的信息(正如我所说它影响其他ComboBoxes).所以唯一的问题是显示列表没有得到更新.

在这个功能中,我尝试了这些方法

>将XMLList转换为XMLCollection甚至是ArrayCollection
>添加this.resellersCountry.invalidateDisplayList();
>触发DATA_CHANGE和UPDATE_COMPLETE等事件
我知道他们没有多大意义,但我有点绝望.

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

对不起,如果我是愚蠢的,但是弹性事件正在扼杀我.

解决方法

设置comboBox’下拉列表的数据提供者似乎可以解决此问题.
this.resellersCountry.dataProvider = items;
this.resellersCountry.dropdown.dataProvider = items;

猜你在找的Flex相关文章