我通过单击复选框项目渲染器启用多行选择。
这适用于扩展mx:Datagrid
(other 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上启用控制键?
答案 0 :(得分: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
属性设置为true
。