【问题标题】:Extjs4 - Data store duplicate records. is it possible?Extjs4 - 数据存储重复记录。可能吗?
【发布时间】:2012-05-23 22:51:04
【问题描述】:

是否可以在数据存储中添加重复记录?

var myData = [
{ id : 0, name : "Rec 0", column1 : "0", column2 : "0" },
{ id : 1, name : "Rec 1", column1 : "1", column2 : "1" },
{ id : 2, name : "Rec 2", column1 : "2", column2 : "2" },
{ id : 3, name : "Rec 3", column1 : "3", column2 : "3" },
{ id : 4, name : "Rec 4", column1 : "4", column2 : "4" },
{ id : 5, name : "Rec 5", column1 : "5", column2 : "5" },
{ id : 6, name : "Rec 6", column1 : "6", column2 : "6" },
{ id : 7, name : "Rec 7", column1 : "7", column2 : "7" },
{ id : 8, name : "Rec 8", column1 : "8", column2 : "8" },
{ id : 9, name : "Rec 9", column1 : "9", column2 : "9" }
];


var origine = new Ext.data.Store({
        //autoDestroy: true,
        storeid: 'origineRec',
        id:'origineRec',
        //model: 'DataObject',
        //idIndex: 0,
        fields: ['id','name','column1 ','column2 '],
        data: myData 
});

var destinazione = new Ext.data.Store({
        //autoDestroy: true,
        storeid: 'destinazioneRec',
        id:'destinazioneRec',
        //idIndex: 0,
        fields: ['id','name','column1 ','column1 ']
});

我有这样的情况,两个网格面板,两个商店,我必须将一条记录拖放到“destinazione”中,并且可以允许重复记录。

我在第二个网格(Rec 0 - Rec 0)中添加了重复记录,但保存到网格后只有一条记录。

我该如何解决?谢谢

【问题讨论】:

    标签: extjs extjs4 duplicates store records


    【解决方案1】:

    默认情况下id 属性是主键,您不能在存储中拥有多个具有相同键的记录。您可以通过将 idProperty 指定为其他内容来更改主要内容,但无论如何它不会解决您的问题。

    如果您有两个商店并将记录从一个转移到另一个 - 那么最好从原始商店中过滤掉已选择的记录,甚至删除它们。

    【讨论】:

    • 我无法从原始存储中删除记录。在某些情况下,我需要重复记录。
    • 如果您需要重复记录,您需要修改存储数据的方法。在目标商店中创建另一个 id 字段。
    • 也许我可以解决在网格面板上添加 beforedrop 事件并使用新 ID 更改的问题。我在努力……
    猜你喜欢
    • 1970-01-01
    • 2015-05-26
    • 2011-08-27
    • 2012-02-18
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    相关资源
    最近更新 更多