0

在ExtJS 4.1的这个例子中,实际上左侧元素(患者)是从视图克隆到右侧网格(医院)我想在拖放到右侧网格时删除左侧视图的患者,并添加容量将项目从右网格移动到左视图:

我用一个技巧(slideOut)制作了第一部分(向右移动)我这样做了:

在函数 initializePatientDragZone 之前我添加了:

return v.dragData = {
    sourceEl: sourceEl,
    repairXY: Ext.fly(sourceEl).getXY(),
    ddel: d,
    patientData: v.getRecord(sourceEl).data,
    patientElement: sourceEl //This part
}; 

然后我在 onNodeDrop 函数中添加了一个像这样的 slideOut 技巧:

onNodeDrop : function(target, dd, e, data){

var rowBody = Ext.fly(target).findParent('.x-grid-rowbody-tr', null, false),
    mainRow = rowBody.previousSibling,
    h = gridView.getRecord(mainRow),
    targetEl = Ext.get(target);

    targetEl.update(data.patientData.name + ', ' + targetEl.dom.innerHTML);

    //this slideOut
    Ext.get(data.patientElement).slideOut('t', {
    easing: 'easeOut',
    duration: 500,
    remove: true,
    useDisplay: true
});

return true;
}

你可以看到它现在的样子:在这个动画中

现在我只想将右侧网格中的项目移动到左侧视图。

4

1 回答 1

0

我在早期的项目中使用网格到网格 DND 插件实现了这种功能。

例如,一个患者网格,三个医院的其他三个网格。

将网格布局为兄弟姐妹,您需要的唯一额外配置是:

multiSelect: true,
viewConfig: {
    plugins: {
        ptype:'gridviewdragdrop'
    }
},

您将能够来回选择它们,而不必弄乱拖放区。这是实现所需功能的最简单方法。

于 2012-08-21T17:27:19.063 回答