我有幾個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的建議已被發現,除非要小心索引因排序而改變。 –