2017-06-06 25 views
2

我試圖從qx.ui.table.Table小部件拖到其他小部件。 我無法獲得有關表格行的信息,我試圖拖動。從qx.ui.table.Table拖放(Qooxdoo版本5.x或主)

我想拖動一行(分別是它的內容),而沒有它被聚焦或選擇,例如,只需點擊行並立即開始拖動。

感謝, 弗裏茨

+0

歡迎來到Stack Overflow。請查看[Tour](https://stackoverflow.com/tour)和[Asking](https://stackoverflow.com/help/asking)。 – Shiro

回答

1

我在這種情況下做什麼,是先設置表focusCellOnPointerMove屬性true

如果您不想讓鼠標移動時突出顯示單元格的反饋,則可以另外撥打table.highlightFocusedRow(false)來禁止該單元格。

這種方式表格「知道」當前在鼠標指針下的單元/行。

那麼你能夠檢測表的dragstart事件處理當前行的索引:

_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()如。在dragend處理程序中。

這當然只適用於指針設備。

+0

完美地工作。注意:在DragStart處理程序中需要e.addData(「myType」,rowData),因爲在退出表區域時焦點信息會丟失。 –