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();
Другие вопросы по тегам