【问题标题】:ExtJS: how to insert a record of a store into another store?ExtJS:如何将一个商店的记录插入另一个商店?
【发布时间】:2012-03-23 11:21:50
【问题描述】:

我有两个数据模型:Writer.AttributValeurWriter.Produit

Writer.ProduitWriter.AttributValeur 有一对一关系。

我想显示(并创建/编辑/删除)Writer.Produit 的列表。我希望能够将Writer.AttributValeur 添加到当前的Writer.Produit

这就是我所做的:两家商店:

  • 第一个与网格(和表单)链接以显示(并创建/编辑/删除)Writer.Produit 的列表。
  • 第二个用于显示Writer.AttributValeur的列表(仅列表)

在第一个网格中,有一个按钮“添加AttributValeur”。当用户单击它时,我会显示一个 Windows,其中有一个与第二个商店链接的网格。如果用户选择了一条记录,然后单击 sur ok,我可以使用此代码获取 Writer.AttributValeur 记录:

var currentAttribut = gridAttributs.getView()
    .getSelectionModel()
    .getSelection()[0];

我想将这条记录 currentAttribut 添加到 Writer.Produit 存储中。

知道怎么做吗?以下是我的数据模型的 ExtJS 声明,以及我的商店的创建。

Ext.define('Writer.AttributValeur', {
    extend: 'Ext.data.Model',
    fields: [{
            name: 'id',
            type: 'int',
            useNull: true
        },  
        'description',
        'val'
    ],  
    belongsTo: 'Writer.Produit'
});

Ext.define('Writer.Produit', {
    extend: 'Ext.data.Model',
    fields: [{
            name: 'id',
            type: 'int',
            useNull: true
        },  
        'titre',
        'description'
    ],
    hasMany: {
        model: 'Writer.AttributValeur',
        name: 'attributs'
    }   
});

var store = Ext.create('Ext.data.Store', {
    model: 'Writer.Produit',
    autoLoad: true,
    autoSync: true,
    proxy: {
        type: 'ajax',
        api: {
            read: 'json/liste_view/',
            create:  'json/item/?mode=create',
            update:  'json/item/?mode=update',
            destroy: 'json/item/?mode=destroy'
        },
        reader: {
            type: 'json',
            successProperty: 'success',
            root: 'data',
            messageProperty: 'message'
        },
        writer: {
            type: 'json',
            writeAllFields: true,
            root: 'data'
        }
    }
});


var storeAttributs = Ext.create('Ext.data.Store', {
    model: 'Writer.AttributValeur',
    autoLoad: true,
    autoSync: true,
    proxy: {
        type: 'ajax',
        api: {
            read: 'json/attributs/'
        },
        reader: {
            type: 'json',
            successProperty: 'success',
            root: 'data',
            messageProperty: 'message'
        }
    }
});

【问题讨论】:

    标签: extjs extjs4


    【解决方案1】:

    似乎是什么问题?每个商店都有方法add。使用它。

    【讨论】:

    • 好的,我将您的问题标记为“好的”,因为它回答了我的问题。我的问题没有很好的形成,我会再问一个;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 2022-01-03
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多