在flex中,有没有办法捕获并可选地取消DataGrid中的行选择事件?

时间:2011-09-16 15:38:10

标签: flex flex4

这应该是微不足道的,但我似乎无法找到一种方法来做到这一点。

我有一个DataGrid,我想做的是,当用户点击一行来选择它,检查某个条件,如果满足,则阻止该行被选中并保持旧选择不变。

谢谢!

1 个答案:

答案 0 :(得分:3)

我没有测试它,但它应该在GridSelectionEvent.SELECTION_CHANGING事件上使用event.preventDefault()和/或event.stopImmediatePropagation()。

//stupid function but used for example purpose
private function addListener():void
{
    dataGrid.addEventListener(GridSelectionEvent.SELECTION_CHANGING, onSelectionChanging)
}


private function onSelectionChanging(event:GridSelectionEvent):void
{
    if(!canRowBeSelected(event.selectionChange.rowIndex))
    {
       event.stopImmediatePropagation();
       event.preventDefault();
    }
}

private function canRowBeSelected(index:int):Boolean
{
    //add logic
    return false;
}