FLEX ArrayCollection删除过滤的数据问题解决

所属分类: 网络编程 / Flex 阅读数: 648
收藏 0 赞 0 分享
一、问题:

ArrayCollection添加过滤器后,部门数据不会被展现,当我删除未展现的数据时,调用removeItemAt()是无法删除的。

二、原因:
复制代码 代码如下:

public function removeItemAt(index:int):Object
{
if (index < 0 || index >= length)
{
var message:String = resourceManager.getString(
"collections", "outOfBounds", [ index ]);
throw new RangeError(message);
}

var listIndex:int = index;
if (localIndex)
{
var oldItem:Object = localIndex[index];
listIndex = list.getItemIndex(oldItem);
}
return list.removeItemAt(listIndex);
}

因为var oldItem:Object = localIndex[index];中localIndex是一个未被过滤的数据。

三、解决

ArrayCollection中有list的属性:
复制代码 代码如下:

public function get list():IList
{
return _list;
}

_list就是原始数据。

所以如果要在添加了过滤器的ArrayCollection上删除过滤的数据,需要list的帮助。实现代码如下:
复制代码 代码如下:

public function findEmployeeInSource(id:int):OrgEmployee {
var obj:OrgEmployee = null;
var list:IList = employees.list;
var len:int = list.length;
for (var index:int = 0; index < len; index++) {
obj = list.getItemAt(index) as OrgEmployee;
if (obj.id == id) {
return obj;
}
}
return null;
}

public function deleteEmployee(id:int):void {
var obj:OrgEmployee = findEmployeeInSource(id);
if (obj != null) {
var index:int = employees.list.getItemIndex(obj);
employees.list.removeItemAt(index);
}
}

或者一个函数:
复制代码 代码如下:

public function deleteEmployee(id:int):void {
var obj:OrgEmployee = null;
var list:IList = employees.list;
var len:int = list.length;
for (var index:int = 0; index < len; index++) {
obj = list.getItemAt(index) as OrgEmployee;
if (obj.id == id) {
list.removeItemAt(index);
return;
}
}
}
更多精彩内容其他人还在看

flex4.0 利用外部项呈示器显示List信息并添加图片示例

利用外部项呈示器显示List信息并添加图片,在本文有个不错的示例,喜欢的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

Flex实现双轴组合图的设计思路及代码

组合图是有柱状图和折线图组合的,柱状图显示的数据是依据左边的竖直轴,折线图的数据依据右边的竖直轴,详细实现请看本文,希望对大家有所帮助
收藏 0 赞 0 分享

flex实现股票行情走势图示例代码

股票行情走势图在flex中也可以实现了,具体步骤及代码如下,感兴趣的朋友可以参考下,或许有所帮助
收藏 0 赞 0 分享

flex实现DataGrid高亮显示数据功能的解决方案

原生的DataGrid根本无法达到所要的效果,目前一般就是来改写原生的DataGrid,只需重新写一个类来重写drawRowBackground方法就可以了
收藏 0 赞 0 分享

Flex中如何动态生成DataGrid以及动态生成表头

因某些需要,DataGrid及其表头需要动态生成,网上的解决方案打多笼统,下面有个不错的解决方法,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

Flex中的HDividedBox和VDividedBox的比较附图

学习Flex的朋友对HDividedBox和VDividedBox并不陌生吧,下面是两者的简单比较,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

Flex中AdvancedDataGrid的用法示例介绍

AdvancedDataGrid实现双表头表格,在某些情况下还是比较实用的,下面有个不错的示例,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

FLEX给页面添加滚动条实现思路及代码

给页面添加滚动条的方法有很多,使用js获取浏览器窗口的宽高,根据浏览器窗口宽高修改样式,让滚动条出现,具体的实现如下,需要的朋友可以参考下
收藏 0 赞 0 分享

flex不显示GIF图片问题的另类解决方法

flex不显示GIF图片问题确实令人很头痛,不过我们可以用一些手段让其乖乖显示出来,具体的实现如下,需要的朋友可以参考下
收藏 0 赞 0 分享

flex中使用RadioButtonGroup时取出所选项的值的方法

flex中的RadioButtonGroup想必大家并不陌生吧,在本文将为大家介绍下在使用RadioButtonGroup时如何取出所选项的值,感兴趣的朋友可以参考下
收藏 0 赞 0 分享
查看更多