2017-06-06 7 views
2

qx.ui.table.Tableウィジェットから他のウィジェットにドラッグしようとしています。 ドラッグしようとしているテーブル行に関する情報を取得できません。qx.ui.table.Table(Qooxdooバージョン5.xまたはマスター)からドラッグアンドドロップ

フォーカスまたは選択せずに行(それぞれのコンテンツ)をドラッグしたいとします。たとえば、行をクリックしてすぐにドラッグを開始します。

おかげで、 フリッツ

+0

ようこそスタックオーバーフロー。 [ツアー](https://stackoverflow.com/tour)と[質問](https://stackoverflow.com/help/asking)をご覧ください。 – Shiro

答えて

1

私はこのような状況でやっていることはまずtrueにテーブルfocusCellOnPointerMoveプロパティを設定することです。

マウスの移動で強調表示されているセルのフィードバックを表示したくない場合は、table.highlightFocusedRow(false)を追加して抑制することができます。

この方法では、テーブルは現在マウスポインタの下にあるセル/行を「認識」しています。ドラッグが終了した後

_onDragStartGetFocusedRow : function(e) { 
    var index = this.getFocusedRow(); 
    if(qx.lang.Type.isNumber(index)) { 
    // do something usefull with this information 
    // and start dragging 
    e.addAction("move); 
    e.addType("myType"); 
    } 
}, 

、あなたがtable.resetCellFocus()などを呼び出すことにより、焦点の行をリセットすることができドロップ:

次に、あなたがテーブルのdragstartイベントハンドラで現在の行のインデックスを検出することができます。 dragendハンドラにあります。

これはもちろん、ポインタデバイスでのみ機能します。

+0

完全に動作します。注意:テーブル領域を終了するとフォーカス情報が失われるため、DragStartハンドラのe.addData( "myType"、rowData)が必要です。 –

関連する問題