Extjs Ext.dd.DragZone用于网格(多个项目)GetDragData
我不知道是否有人能帮我。我整个下午都在试,但都做不好 我已经为网格定义了一个Extjs Ext.dd.DragZone用于网格(多个项目)GetDragData,extjs,extjs4,extjs4.1,Extjs,Extjs4,Extjs4.1,我不知道是否有人能帮我。我整个下午都在试,但都做不好 我已经为网格定义了一个DragZone Ext.define('Timetabling.view.ItStudentsDragZone', { extend : 'Ext.dd.DragZone', grid : null, //Tell Ext how to recover from an invalid drop. XY from the dragged data getR
DragZone
Ext.define('Timetabling.view.ItStudentsDragZone', {
extend : 'Ext.dd.DragZone',
grid : null,
//Tell Ext how to recover from an invalid drop. XY from the dragged data
getRepairXY: function() {
return this.dragData.repairXY;
},
// To pair together a drag zone and drop zone
ddGroup : 'itstudents',
getDragData : function(e) {
var sourceEl = e.getTarget(),
view = this.grid.getView(),
rowEl = view.findItemByChild(sourceEl),
rec = rowEl && view.getRecord(rowEl);
if (sourceEl) {
d = sourceEl.cloneNode(true);
d.id = Ext.id();
return {
ddel: d,
sourceEl: sourceEl,
repairXY: Ext.fly(sourceEl).getXY(),
sourceStore: null,
draggedRecord: null
}
}
}
});
如果我只从网格中选择一个项目,它就可以正常工作。但是,当我选择两个或多个项目,然后单击网格选择拖动它时,网格选择中单击的项目将被选中,而另一个项目将保持未选中状态,因此我可以再次拖动一个项目
我想我必须把网格选择作为一个元素,但我不知道怎么做
如果有人对如何解决这个问题有一些想法,我将不胜感激。看看extjs 4.1示例谢谢你的回答,Darin。我不能使用extjs 4.1中内置的拖放功能,因为我需要重写getDragData来执行一些特定的操作。问题是,我不知道如何将这两项都选为源元素。。。