确保Spark DataGrid项可见

时间:2012-08-14 21:46:58

标签: flex flex4 flex-spark

有没有办法确保所选项目在Spark DataGrid中可见?

上下文
我有一个绑定到数组集合的数据网格。我远程接收一个服务,它给我一个集合中的对象的ID(字符串)。只使用字符串我遍历集合来查找与字符串匹配的项目。我通过它的ID找到了对象。现在我有了我想在datagrid中选择的对象。

我可以设置
dataGrid.selectedItem = object; 

现在我需要确保它可见。我没有行或列索引。

更新
使用下面的答案,我赞扬了这个功能:

    /**
     * Ensures the item is visible (for spark data grid)
     **/
    public function ensureItemIsVisibleInSparkDataGrid(datagrid:spark.components.DataGrid, item:Object):void {
        var list:IList = datagrid.dataProvider;
        var length:int = list.length;
        var itemFound:Boolean;
        var object:Object;
        var index:int;

        for (var i:int;i<length;i++) {
            object = list.getItemAt(i);

            if (object==item) {
                itemFound = true;
                index = i;
                break;
            }
        }

        if (itemFound) {
            datagrid.ensureCellIsVisible(index);
        }
    }

1 个答案:

答案 0 :(得分:1)

是的,它被称为ensureCellIsVisible()。您需要知道相关项目的行和列。要使其工作,您需要侦听selectionChange事件,然后计算当前所选项目的行和列。