グリッドにツールバーを追加しました コントローラー/コントロールでイベントをバインドできません コードが自分自身を説明するときに退屈です:)Extjsコントローラーのグリッド内のボタンにイベントを追加する
Ext.define('SA.view.user.List' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.userlist',
title : 'All Users',
store: 'Users',
initComponent: function() {
this.columns = [
{
header: 'Id',
sortable: true,
dataIndex: 'id',
flex: 1,
field: {
type: 'textfield'
}
},
{
header: 'Name',
sortable: true,
dataIndex: 'uname',
flex: 1,
field: {
type: 'textfield'
}
},
{
header: 'Email',
sortable: true,
dataIndex: 'email',
flex: 1,
field: {
type: 'textfield'
}
}
];
this.callParent(arguments);
},
dockedItems: [
{
xtype: 'toolbar',
items: [{
iconCls: 'icon-add',
text: 'Add',
scope: this
}, {
iconCls: 'icon-delete',
text: 'Delete',
disabled: true,
itemId: 'delete',
scope: this
}]
},
{
xtype: 'pagingtoolbar',
store: 'Users', // same store GridPanel is using
dock: 'bottom',
displayInfo: true
}
]
});
はどのようにコントローラ内のクリックイベントのフォームハンドラ]できる
init: function() {
this.control({
'userlist': {
itemdblclick: this.editUser
},
'userlist > toolbar/*my attempt but it doesnt work :(*/': {
click: this.insertUser
},
'useredit button[action=save]': {
click: this.updateUser
}
});
},
さようなら
私はトリック:) XTYPEやった: 'ツールバー'、 項目:[{ iconCls: 'アイコンの追加' を、 ID: 'B-追加'、 テキスト: '追加'、 スコープ:this } 'userlist> toolbar> button#b-add' – Whisher
これは良い考えではありません。厳密なIDの使用は悪い習慣です。 – erlrange