2012-01-17 75 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螢火蟲插件,以進一步幫助你弄清楚什麼是你的網頁。

+0

此命令返回2個對象的集合:[{對象= initialConfig {...}, xtype =「button」,text =「刪除任務」,更多...},Object {initialConfig = {...},xtype =「button」,text =「刪除任務」,更多...}] – Metafr 2012-01-18 08:51:01

+1

OK夥計對不起。我已經讓我的application.js文件中的「autoCreateViewport:true」。所以每個對象都創建了兩次。感謝您的幫助 – Metafr 2012-01-18 09:51:04

0

我不知道爲什麼它不工作,但它工作得很好,如果你用的itemid叫它:

selector: 'missionsGridPanel #removeMissionButton' 
+0

它不適用於我,該按鈕仍處於禁用狀態。 – Metafr 2012-01-18 08:53:28