2013-06-26 41 views
9

我有一個ID爲btnAdd的按鈕,我想在某個事件觸發時將其禁用。當某個窗口關閉時會發生該事件。所以我嘗試了下面的代碼,它不起作用。如何禁用按鈕Ext JS

Ext.create('Ext.window.Window', { 
    // Some initialization code goes here... 
    listeners: { 
     close: function(panel, eOpts){ 
      Ext.get('btnAdd').disable(); // this does not work; 
      Ext.get('btnAdd').setDisabled(); // this one does not either 
      Ext.get('btnAdd').disabled = true; // And this one also seems to do nothing 
     } 
    } 
}); 

我該怎麼做?這似乎是一個很容易的問題,但不要判斷我不好。我對Ext JS很陌生。我在API文檔中也找不到答案。

回答

11
+0

你的解決方案是真實的,但我不得不改變一件事。而不是Ext.get()我不得不使用Ext.getCmp()。所以Ext.getCmp('btnAdd')。setDisabled(true);這個工作完美。你能告訴我這兩種方法有什麼區別嗎? – Dimitri

+0

@Dima:http://docs.sencha.com/extjs/4.2.1/#!/api/Ext-method-get&http://docs.sencha.com/extjs/4.2.1/#!/ API/EXT-方法-getCmp – zerkms

1
Ext.get('btnid').disable(); 
Ext.get('btnid').setDisabled(true); 
1
Ext.get('btnid').disable(); 
Ext.get('btnid').setDisabled(true); 

兩個回傳失誤,如果沒有問題的工作的最好辦法是

Ext.getCmp('btnid').setDisabled(true) 

當按鈕被禁用,通知您可以設置一個文本用戶。

例子:

Ext.getCmp('btnid').setText("Button has been disabled") 
1

如果按鈕是ExtJS的組件,然後使用

Ext.getCmp('btnAdd').disable(); 

如果不是Ext JS的組件,然後使用

Ext.get('btnAdd').setDisabled(true); 

我希望這將有助於。