spark Datagrid中的SelectItem方法?

时间:2012-06-16 06:21:25

标签: flex datagrid flex4.5 flex-spark

我通过单击复选框项目渲染器启用多行选择。

这适用于扩展mx:Datagridother answer

override protected function selectItem(item:IListItemRenderer,
                                                   shiftKey:Boolean, ctrlKey:Boolean,
                                                   transition:Boolean = true):Boolean
            {
                // only run selection code if a checkbox was hit and always
                // pretend we're using ctrl selection

                if (item is CheckBox)
                    return super.selectItem(item, shiftKey, true, transition);
                else //Avenir Cokaj 23/06/11: this enables the flex's natural selection
                    return super.selectItem(item, shiftKey, ctrlKey, transition);

            }

super.selectItem中没有s:Datagrid那么如何在spark datagrid上启用控制键?

1 个答案:

答案 0 :(得分:2)

使用selectionMode属性。不再需要子类化。在您的情况下,您可能希望将其设置为multipleRows

<s:DataGrid selectionMode="multipleRows" />

其他值包括:

  • singleCell
  • singleRow(默认)
  • multipleCells

我相信他们是不言自明的。

现在,如果您希望只需单击即可多次选择行(就像控制键一直被按下一样),您可以通过继承DataGrid来完成此操作:

public class MyDataGrid extends DataGrid {

    override protected function grid_mouseDownHandler(event:GridEvent):void {
        event.ctrlKey = true;
        super.grid_mouseDownHandler(event);
    }

}

我们只是截取事件并将其ctrlKey属性设置为true