dgrid dnd实现onDrop事件

时间:2016-06-01 13:01:26

标签: javascript dojo dgrid dojo-dnd

我想在dgrid中实现DnD的drop事件的自定义行为。我有以下gdrig声明:

this.grid = new (declare([OnDemandGrid, Editor, DnD, DijitRegistry]))({
                        region: "center",
                        collection: this.store,
                        selectionMode: 'single',
                        columns: ...
                    }, this.gridNode);

                    this.grid.startup();

我真正想要的是简单:在网格中拖放一行(重新排序dgrid中的项目)后,我想触发一个事件(函数 - 比如获取当前行并操纵它等)。 问题是我不知道如何覆盖onDrop事件或拖动事件。有人可以给我一个暗示。

1 个答案:

答案 0 :(得分:0)

有一种简单的机制来替换onDrop,但是如何保持但扩展现有的onDrop功能并不是很明显。这是因为onDrop存在于网格创建的名为DnDSource的类中。幸运的是,这是dependency that can be injected(通过名为dndConstructor的属性)。这是我的解决方案:

var MyDnDSource = declare([DnDSource], {
    onDrop: function() {
        this.inherited(arguments); // This is the original onDrop functionality
        console.log('This is my additional onDrop functionality');        
  }
});

this.grid = new (declare([OnDemandGrid, Editor, DnD, DijitRegistry]))({
                    dndConstructor: MyDnDSource,
                    region: "center",
                    collection: this.store,
                    selectionMode: 'single',
                    columns: ...
                }, this.gridNode);

this.grid.startup();