2013-06-26 39 views
9

Tôi có nút có id là btnAdd và tôi muốn tắt nút khi một số sự kiện được kích hoạt. Sự kiện này xảy ra khi một số cửa sổ bị đóng. Vì vậy, tôi đã thử đoạn mã sau và nó không hoạt động.Cách tắt nút 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 
     } 
    } 
}); 

Tôi làm như thế nào? Điều này có vẻ là câu hỏi khá dễ dàng nhưng không phán xét tôi xấu. Tôi khá mới với Ext JS. Tôi cũng không thể tìm thấy câu trả lời trong Tài liệu API.

Trả lời

11
+0

Giải pháp của bạn là đúng, nhưng tôi phải thay đổi một điều. Thay vì Ext.get(), tôi đã phải sử dụng Ext.getCmp(). Vì vậy, Ext.getCmp ('btnAdd'). SetDisabled (true); cái này hoạt động hoàn hảo. Và bạn có thể cho tôi biết sự khác biệt giữa hai phương pháp này là gì? – 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-method-getCmp – zerkms

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

cả lỗi trở lại, cách tốt nhất là làm việc mà không vấn đề là

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

và bạn có thể thiết lập một văn bản khi nút bị vô hiệu hóa thông báo người dùng.

Ví dụ:

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

NẾU nút là ExtJS thành phần sau đó sử dụng

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

Nếu nó không phải là Ext js Component sau đó sử dụng

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

Tôi hy vọng điều này sẽ giúp.