更新已编辑的行extjs

时间:2013-06-06 03:50:21

标签: extjs extjs4

我的问题很容易,但我负担不起.. 我从行获取数据并在其他面板的字段中显示 我的目标是编辑这些数据并在网格中显示已编辑的数据,请给我一些建议,我知道它需要commit() function但是......

我的代码:

   var selModel = persongrid.getSelectionModel();
  var selectedRecords = selModel.getSelection();

 console.log(selectedRecords[0].data)
 me.activeRecord = selectedRecords;

a=selectedRecords[0].data;
  var user = Ext.create('SFG.model.Person',a    );
 me.getForm().loadRecord(user);

但需要继续,请帮助我..

2 个答案:

答案 0 :(得分:3)

应该这样做:

var selection = persongrid.getSelectionModel().getSelection(),
    record = selection.length > 0 ? selection[0] : null;

me.getForm().loadRecord(record);

当您完成所有编辑调用

me.getForm().updateRecord();

这是 JSFiddle

请注意updateRecord执行以下操作

其中endEdit也通知此实例绑定的所有商店

答案 1 :(得分:0)

不需要这么多努力,只需要将编辑后的值设置为记录并同步商店。

将网格数据推送到表单

editUser: function(grid, record) {
        var view = Ext.widget('useredit');

        view.down('form').loadRecord(record);
    }

将编辑后的数据推回商店

updateUser: function(button) {
    var win    = button.up('window'),
        form   = win.down('form'),
        record = form.getRecord(),
        values = form.getValues();

    record.set(values);
    win.close();
    this.getUsersStore().sync();
}

注意:getUsersStore()的结构为getStore。

请浏览以下链接,这可能对您的要求有用。此链接包含完整代码所需的内容以及解释。

http://docs.sencha.com/extjs/4.0.7/#!/guide/application_architecture

感谢。

相关问题