0

我有一个暂时无法解决的问题,不胜感激。本地 XML 文件被加载到 HTTP 服务中,并将数据加载到 DataGrid 中。本地文件包含有关本地存储文件的信息。

为了安全起见,当 AIR 应用程序加载时,我想运行加载的数据网格并检查本地文件是否存在。如果它不存在,我想删除数据网格中的行。

这样做我得到这个恼人的错误:提供的索引超出范围。

我知道,删除数据网格中的元素将导致新索引导致此错误。

谢谢你的建议!

public function checkiffileislocal(event:Event):void{

            var i:int;
            var count:Number = (dgUserRequest.dataProvider as ICollectionView).length;

            for (i=0;i < count;i++)
            {

                dgUserRequest.selectedIndex = i;
                if (File.applicationStorageDirectory.resolvePath(dgUserRequest.selectedItem.id).exists == false)
                {   
                    dgUserRequest.removeChildAt(dgUserRequest.selectedIndex);
                }

            }


        }
4

1 回答 1

0

在我看来,您想从 dataProvider 中删除一个项目;不是 DataGrid 的可视子项。

DataGrid 的行不是它的子项。

行/列是根据 dataProvider 中的项目数自动创建的。您不应该尝试直接操作行/列对象。

于 2013-09-19T13:49:42.613 回答