向网格添加新对象

时间:2018-07-27 06:24:47

标签: extjs6-classic

我正在尝试在extjs 6经典工具包中向现有网格添加新记录。

我将在下面粘贴我的代码,但首先要解释问题所在。 我使用getCmp和getStore来获取网格并存储将要使用的网格。 使用Ext.ComponentQuery.query,我可以从表单中的每个字段获取要添加到网格中的值。

console.log(值)显示值

这是我到目前为止所拥有的:

getValuesForSave : function() {

    var grid = Ext.getCmp('cataloguegrid');
    var store = Ext.getStore('cataloguegridstore'); 
    var model = store.model.create({});

    var form = Ext.ComponentQuery.query("#basicDataPanel")[1];  
    var values = form.getValues();

    console.log(values);
    grid.getStore(model).insert(0, values);  

    Ext.MessageBox.show({
        title : 'Saving data!',
        msg : 'Data successfully saved!',
        buttons : Ext.MessageBox.OK,
        icon : Ext.Msg.INFO
    });     
},

我没有任何错误,并且在网格中添加了新行,但是该行为空,它不包含任何数据。 我需要进行哪些更改才能将对象添加到网格?

1 个答案:

答案 0 :(得分:0)

使其正常工作。我的问题是我没有将表单视图中的“名称”设置为与表单模型中项目的“名称”相同。进行了更改以使其匹配,并且可以正常工作。

getValuesForSave : function() {

var grid = Ext.getCmp('cataloguegrid');

var form = Ext.ComponentQuery.query("#basicDataPanel")[1];  
var values = form.getValues();

console.log(values);

grid.getStore().insert(0, values);   

Ext.MessageBox.show({
    title : 'Saving data!',
    msg : 'Data successfully saved!',
    buttons : Ext.MessageBox.OK,
    icon : Ext.Msg.INFO
});         
},