0

我有一个绑定到网格的表单,用户可以在其中创建新用户或在网格中选择一行并编辑用户。在网格中选择一行应该会改变一些按钮的可见性。无论如何,我的主要障碍是 Ext 似乎没有在行选择事件上完全加载。我在萤火虫中遇到的错误是:

TypeError: Ext.getCmp(...) is undefined

这是我的 MVC 控制器中的一段代码:

....
init: function() {
    this.control({
        'userlist': {
            selectionchange: this.gridSelectionChange,
            viewready: this.onViewReady,
            select: this.onRowSelect
        },
        'useredit button[action=update]': {
            click: this.updateUser
        },

        'useredit button[action=create]': {
            click: this.createUser
        }
    });
},

onRowSelect: function(model, record, index, opts) {
    // Switch to the Edit/Save button
    //console.log(model);
    Ext.getCmp('pplmgr-user-create').hide();
    Ext.getCmp('pplmgr-user-create').show();
    Ext.getCmp('id=pplmgr-user-reset').show();
},
....

是否有其他方法/事件可以完成此任务?我在 selectionchange 和 select 事件中都尝试过,我也尝试过使用 Ext.Component.Query ,但似乎 Ext 在这些事件中尚不可用。我会很感激任何帮助,包括告诉我更好的做法来完成同样的事情。

4

2 回答 2

1

如果你对你的观点有参考,你可以试试这个:

myView.down('pplmgr-user-create').hide();
....
....
于 2012-12-22T04:41:22.943 回答
1

Ext.getCmp将 id 作为其参数。您对它的第三次调用有id=...,“id =”部分使 getCmp 感到困惑,因此它返回未定义。

如果您将最后一次调用更改为仅 id,则应该没问题:

Ext.getCmp('pplmgr-user-reset').show();
于 2012-12-22T05:12:58.663 回答