我有几个dropdownlist控件,共享相同的dataprovider(相同的参考)。Flex下拉列表数据提供重置在刷新
我已经重写了sort函数的set dataprovider方法(代码如下)。问题在于,当我将此共享数据提供者设置为新的下拉列表时,共享数据存取者的所有现有下拉控件都将被取消选中(丢失之前选定的值)。
override public function set dataProvider(value:IList):void{
if(value is ArrayCollection){
var sort:Sort=new Sort();
var sortField:SortField = new SortField();
sortField.numeric=false;
sort.fields=[sortField];
ArrayCollection(value).sort=sort;
ArrayCollection(value).refresh();
}
super.dataProvider=value;
}
对每个组件中的dataProvider进行排序似乎会引入如此和/或将来的随机问题。是否有可能在组件外排序一次?一般来说,组件在渲染时不应该修改数据(某些Flex图表组件会这样做,并警告您它们会“破坏”数据)。以下来自@Markus Rossler的建议已被发现,除非要小心索引因排序而改变。 –