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.selectItems:Datagrid

4

1 に答える 1

2

selectionModeプロパティを使用します。これ以上のサブクラス化は必要ありません。あなたの場合、あなたはそれをに設定したいと思うでしょうmultipleRows

<s:DataGrid selectionMode="multipleRows" />

その他の値は次のとおりです。

  • 無し
  • 単細胞
  • 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

于 2012-06-16T09:06:49.973 に答える