1

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

这适用于扩展mx:Datagrid其他答案

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上启用控制键?

4

1 回答 1

2

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

<s:DataGrid selectionMode="multipleRows" />

其他值是:

  • 没有任何
  • 单细胞
  • 单行(默认)
  • 多个细胞

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

现在,如果您希望通过单击来多选行(就像不断按下控制键一样),您可以通过像这样子类化 DataGrid 来做到这一点:

public class MyDataGrid extends DataGrid {

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

}

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

于 2012-06-16T09:06:49.973 回答