Javascript ExtJS4及其新的MVC:grid:如何处理键?
我正在寻找一种方法来处理网格中的键。 我在这里已经详细介绍了以下示例:Javascript ExtJS4及其新的MVC:grid:如何处理键?,javascript,extjs,grid,extjs4,Javascript,Extjs,Grid,Extjs4,我正在寻找一种方法来处理网格中的键。 我在这里已经详细介绍了以下示例: 所以现在一切正常,但我想处理网格中的关键点 因此,我想在声明“this.control({})”中,我应该添加另一个与userlist有关的事件,但网格似乎没有“keypress”事件 你知道我应该怎么做吗(而且我应该如何使用新的MVC模式) 创建视图后立即在launch:function(){…}中进行定义。非常感谢。遗憾的是,我在stackoverflow上比在Sencha网站上更快地得到答案!你这么说真是太好了。我
所以现在一切正常,但我想处理网格中的关键点 因此,我想在声明“
this.control({})
”中,我应该添加另一个与userlist
有关的事件,但网格似乎没有“keypress”事件
你知道我应该怎么做吗(而且我应该如何使用新的MVC模式)
创建视图后立即在
launch:function(){…}
中进行定义。非常感谢。遗憾的是,我在stackoverflow上比在Sencha网站上更快地得到答案!你这么说真是太好了。我认为(但不要说)事情更调皮。没有答案。从未。或者完全没用。我几乎后悔花了这么多时间在一个几乎没有帮助的框架上。所以在问了4天问题后,如果我在他们的论坛上没有得到答案(8次中有7次是这样),我会觉得随风吐痰,所以我把它贴在这里。再次感谢。
Ext.define('GS.controller.Users', {
extend: 'Ext.app.Controller',
models: [
'User'
],
stores: [
'Users'
],
views: [
'user.List',
'user.Edit'
],
init: function () {
this.control({
/* (!) Actions in 'userlist' */
'userlist': {
selectionchange: this.userListSelectionChange,
itemdblclick: this.userEdit
},
'userlist button[action=create]': {
click: this.userCreate
},
'userlist button[action=delete]': {
click: this.userDelete
},
/* (!) Actions in 'useredit' */
'useredit button[action=create]': {
click: this.userCreateValidate
},
'useredit button[action=save]': {
click: this.userEditValidate
}
});
},
userListSelectionChange: function(grid, selections, options) {
var panel = grid.view.up('panel'),
button = panel.down('button[action=delete]');
button.setDisabled(selections.length === 0);
},
userCreate: function(button) {
/* Using Ext.create() to pass variable create:true
* instead of the shortcut:
* var view = Ext.widget('useredit');
*/
var view = Ext.create('GS.view.user.Edit', {
create:true
});
},
userCreateValidate: function(button) {
var win = button.up('window'),
form = win.down('form'),
values = form.getValues();
this.getUsersStore().add(values);
this.getUsersStore().sync();
win.close();
},
userEdit: function(grid, record) {
var view = Ext.widget('useredit');
view.down('form').loadRecord(record);
},
userEditValidate: 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();
},
userDelete: function(button) {
var panel = button.up('panel'),
selection = panel.getSelectionModel().getSelection()[0];
if (selection) {
var store = this.getUsersStore();
store.remove(selection);
store.sync();
}
}
});