Хорошо, я нашел решение этой проблемы.
Идея состоит в том, чтобы заменить свойство records параметра data в beforedrop.
(Свойство records в основном представляет собой массив Модель / Записи, отброшенные в сетке)
Итак, в этом примере конфигурации для сетки:
viewConfig: {
plugins: {
dropGroup: 'items',
ptype: 'gridviewdragdrop'
},
listeners: {
beforedrop: this.onBeforeDropItem,
scope:this
}
}
Обработчик beforedrop выглядит следующим образом:
,onBeforeDropItem: function(node, data, overModel, dropPosition, dropFunction, options)
{
var final_records = [];
nrecords = data.records.length;
for(var i=0;i<nrecords;i++)
{
var record = data.records[i];
if (/* your condition goes here */)
{
final_records.push(record);
}
}
data.records = final_records;
}
(в моем случае условие состоит в том, чтобы проверить, находится ли запись уже в моем локальном сеточном хранилище, но может быть что-то еще)
Может быть, я заново изобретаю колесо.У кого-нибудь есть лучшее решение?