我想在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事件或拖动事件。有人可以给我一个暗示。
答案 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();