EXTJS MVC将数据从一个视图发送到另一个视图

时间:2012-08-30 09:33:59

标签: model-view-controller extjs extjs4 extjs4.1 extjs-mvc

使用EXTJS MVC架构开发应用程序。 我创建了一个数据视图,它包含系统中的用户列表,数据视图中的每个项目都包含三个按钮。其中一个是编辑按钮,点击后会打开另一个视图。此视图包含可以编辑用户详细信息的表单。现在,当我打开表单时,我希望将用户详细信息加载到表单的字段中。

那么,我如何将数据从数据视图发送到表单,以便相应的用户数据被加载?

以下是代码:

控制器

init : function() {
    this.control({
        'button[action=addUsers ]' : {
            click : this.addUsers
        },
        '#userlist' : {
            itemclick : this.userListSelectionChange
        }
    })
},
userListSelectionChange : function(view, record, h, ind, evt) {

    console.log('user List clicked')

    var edit = evt.getTarget('a.icon-edit-32');
    var deletebt = evt.getTarget('a.icon-delete-32');

    if (edit != null) {

        var name = record.get('Name');
        console.log(name);

        this.showHWindow(record);
    }

    if (deletebt != null) {

        var name = record.get('Name');
        console.log(name);

        this.showOffWindow();
    }
},

当调用showHWindow()方法时,表单打开,我希望表单加载该特定用户的数据。而且,即使它打印正确的名称

var name = record.get('Name');

我不确定如何将此数据发送到表单。

另外,我尝试使用loadRecord方法,但字段为空。

this.euWin = Ext.create('Campus.view.EditUsers');   

var f = this.getEdituserform().getForm();

    f.loadRecord(record);

    this.euWin.showWin();

2 个答案:

答案 0 :(得分:1)

您的userListSelectionChange方法接收'record'参数中的网格行数据,然后您需要做的是使用表单的loadRecord方法加载表单,这就是全部。

答案 1 :(得分:0)

解决了它:)我的表单中的名称与记录的名称不同。 我有

record.data.Name 

而在我的形式

name : FName

我已改为

name : Name

非常感谢lontivero的帮助