dgrid dnd реализует событие onDrop
Я хотел бы реализовать собственное поведение события drop DnD в dgrid. У меня есть следующая декларация 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 ответ
Существует простой механизм замены onDrop, однако не совсем очевидно, как сохранить, но расширить существующие функциональные возможности onDrop. Это потому, что onDrop живет в классе DnDSource, который создает сетка. К счастью, это зависимость, которую можно внедрить (через свойство 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();