2

誰かがこれを手伝ってくれるかどうかわかりません。私は午後中ずっと試していましたが、うまくいきませんでした。

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
             }
        }                                   
      }
   });

グリッドから項目を 1 つだけ選択すると、問題なく動作します。しかし、2 つ以上のアイテムを選択してからグリッド選択をクリックしてドラッグすると、グリッド選択でクリックされたアイテムが選択され、他のアイテムは選択されないままになるため、もう一度 1 つのアイテムをドラッグすることができます!

グリッドの選択を要素として取得する必要があると思いますが、その方法がわかりません...

誰かがこれを解決する方法についていくつかのアイデアを持っていれば、本当に感謝しています。

4

1 に答える 1

0

ここでextjs 4.1の例を見てください

于 2013-01-12T22:27:14.220 に答える