Отключить закрепленную кнопку в виде из контроллера - PullRequest
0 голосов
/ 17 января 2012

У меня есть приложение MVC, созданное с помощью extJS 4. Я хочу отключить закрепленную кнопку на панели сетки из контроллера Вот мой вид сетки:

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);
}

});

Я не понимаю, почему это не работает. «Миссия выбрана», но кнопка остается отключенной.

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Я не уверен, почему это не работает, но работает нормально, если вы позвоните по itemid:

selector: 'missionsGridPanel #removeMissionButton'
0 голосов
/ 18 января 2012

Вот как это устранить -

Перейдите в консоль Firebug, введите:

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

и посмотрите, возвращается ли что-нибудь.Я бы порекомендовал установить плагин Firebug для Illuminations for Developers, чтобы помочь вам выяснить, что на вашей странице.

...