0

このExtJS4.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トリックを1つ追加しました。

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プラグインを使用して、以前のプロジェクトでこの種の機能を実現しました。

たとえば、患者の1つのグリッド、3つの病院用の他の3つのグリッド。

グリッドを兄弟としてレイアウトし、それらに必要な追加の構成は次のとおりです。

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

それらを前後に複数選択することができ、ドロップゾーンをいじくり回す必要はありません。これは、必要な機能を実現するための最も簡単な方法でした。

于 2012-08-21T17:27:19.063 に答える