Я создаю демонстрационное приложение ExtJS 5.1.1. Попробуйте указать refs
для кнопки обновить панели gridpanel, чтобы я мог установить функцию для перезагрузки данных внутри сетки.
Я предполагаю, что я не могу создать правильный refs
как для панели Сетка, так и для кнопки Обновить. Поэтому событие клика не работает.
Основной вид:
Ext.define('MultiDB.view.DBMainView', {
extend: 'Ext.container.Viewport',
alias: 'widget.dbmainview',
requires: [ ... ],
initComponent: function () {
var me = this;
Ext.apply(me, {
items: [{
xtype: 'dbmenupanel',
region: 'west'
}, {
xtype: 'dbgridpanel',
region: 'center'
}, {
xtype: 'dbformpanel',
region: 'south'
}]
});
me.callParent();
}
});
Панель сетки:
Ext.define('MultiDB.view.DBGridPanel', {
extend: 'Ext.grid.Panel',
xtype: 'dbgridpanel',
store: 'FolioStore',
requires: [...],
title: 'ORest DB List',
padding: 1,
itemId: 'gridPanel',
dockedItems: [...],
initComponent: function () {
var me = this;
Ext.apply(me, {
tools: [{
type: 'refresh',
itemId: 'refreshBtn',
tooltip: 'Refresh the DB',
//handler: function () {alert('Click: Refresh Btn');}
}],
columns: [...]
});
me.callParent();
}
});
Контроллер:
Ext.define('MultiDB.controller.DBMainController', {
extend: 'Ext.app.Controller',
views: ['DBGridPanel'],
refs: {
formPanel: 'dbformpanel#formPanel',
gridPanel: 'dbgridpanel#gridPanel',
mainView: 'dbmainview#mainView',
registrationBtn: 'splitbutton#registrationBtn',
refreshBtn: 'dbmainview dbgridpanel#refreshBtn'
},
init: function (application) {
this.control({
"menuitem[opt]": {
click: this.setFormPanel
},
"dbmainview dbgridpanel#refreshBtn": {
viewready: this.doRefresh
}
});
},
setFormPanel: function (item) {...},
doRefresh: function () {
console.log('this is doInit!');
this.getGridPanel().getStore().load();
}
});