からのビューでボタンをドッキングし、私のグリッドパネルの図である。無効に私は、コントローラここ からグリッドパネルにドッキングボタンを無効にしたいExtJSの4 で構築されたMVCアプリを持っているコントローラ
Ext.define('SDI.view.MissionsGridPanel', {
extend: 'Ext.grid.Panel',
alias: 'widget.missionsGridPanel',
width: 688,
title: 'Missions',
store: 'MissionsStore',
tbar:[
{
text:'Delete mission',,
icon: '/images/delete.png',
itemId: 'removeMissionButton',
disabled: true,
action :'delete'
}
]...
私のコントローラは次のとおりです。
Ext.define('SDI.controller.MissionsController', {
extend: 'Ext.app.Controller',
views: ['SDI.view.MissionsGridPanel'],
refs: [
{
selector:'missionsGridPanel',
ref:'missionsGridPanel'
},
{
selector:'missionsGridPanel button[action=delete]',
ref:'missionsGridPanelToolbarDelButton'
}
],
init: function() {
this.control({
'missionsGridPanel': {
selectionchange: this.onMissionSelect
}
})
},
onMissionSelect: function(pTarget,pRecord,pOptions){
console.log("Mission is selected")
this.getMissionsGridPanelToolbarDelButton().setDisabled(false);
}
});
これはなぜ機能しないのですか? "Mission is selected"が記録されますが、ボタンは無効のままです。ここで
このコマンドは、2つのオブジェクトのコレクションを返します:[オブジェクト{initialConfig = {...}、 xtype = "ボタン"、text = "ミッションの削除"、more ...}] – Metafr
OKみんな大変申し訳ありません。私は "autoCreateViewport:true"を私のapplication.jsファイルに入れました。したがって、すべてのオブジェクトは2回作成されました。あなたの助けをありがとう – Metafr