从数组中删除对象以插入网格拖放

时间:2014-02-21 11:42:47

标签: extjs drag-and-drop

你好,我有两个网格,我通过拖放将记录从第一个网格(带字段的书:id,作者,价格)转移到第二个网格(带字段的折扣:id,作者,价格,新价格),所有好,但我想要下一个:当我从网格(书)拖动记录并下降到网格(折扣)记录与相同字段“id”(在两个表中)未插入网格(折扣)。我有一个对象数组,如何使没有插入已经在表(折扣)中的'id'的记录。 我是:

 listeners: {beforeDrop: function(node, data, overModel, dropPosition, dropHandlers) {}

但写什么?感谢

1 个答案:

答案 0 :(得分:1)

在目标网格viewconfig中,您可以为beforedrop事件定义侦听器。在此侦听器中,您可以获取拖动记录的ID,并检查您的数组中是否已存在该ID。

阵列定义:

var forbidenIds = [2, 3];

目标网格视图配置:

viewConfig: {
    plugins: {
        ptype: 'gridviewdragdrop',
        dropGroup: 'group1',
    },
    listeners: {
        beforedrop: function(node, data) {
            // get id of dragged record
            var recordId = data.records[0].getId();                
            // search for record id in array
            var index = Ext.Array.indexOf(forbidenIds, recordId);
            return index === -1 ? true : false;
        }
    }
},

举例说明: https://fiddle.sencha.com/#fiddle/3r8