我有一个绑定到网格的表单,用户可以在其中创建新用户或在网格中选择一行并编辑用户。选择网格中的行应更改某些按钮可见性。无论如何,我的主要障碍是Ext似乎没有在行选择事件上完全加载。我在firebug中遇到的错误是:
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在这些事件中还没有。我很感激任何帮助,包括告诉我一个更好的做法来完成同样的事情。
答案 0 :(得分:1)
如果您有对视图的引用,可以尝试:
myView.down('pplmgr-user-create').hide();
....
....
答案 1 :(得分:1)
Ext.getCmp
将id作为其参数。你第三次调用它有id=...
,“id =”部分让getCmp感到困惑,所以它返回undefined。
如果你将最后一次调用改为id,你应该没问题:
Ext.getCmp('pplmgr-user-reset').show();