2012-01-17 10 views
0

からのビューでボタンをドッキングし、私のグリッドパネルの図である。無効に私は、コントローラここ からグリッドパネルにドッキングボタンを無効にしたい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"が記録されますが、ボタンは無効のままです。ここで

答えて

0

がこれを解決する方法をある -

ゴーFirebugのコンソールに、このタイプ:

Ext.ComponentQuery.query('missionsGridPanel button[action=delete]') 

をして何が返されているかどうかを確認します。 Illuminations for Developersのfirebugプラグインをインストールすることをお勧めします。

+0

このコマンドは、2つのオブジェクトのコレクションを返します:[オブジェクト{initialConfig = {...}、 xtype = "ボタン"、text = "ミッションの削除"、more ...}] – Metafr

+1

OKみんな大変申し訳ありません。私は "autoCreateViewport:true"を私のapplication.jsファイルに入れました。したがって、すべてのオブジェクトは2回作成されました。あなたの助けをありがとう – Metafr

0

私はそれが働いていない理由はわからないが、あなたはアイテムIDでそれを呼び出す場合、それは正常に動作します:

selector: 'missionsGridPanel #removeMissionButton' 
+0

それは私のためには機能しません、ボタンは無効のままです。 – Metafr

関連する問題