2014-09-11 258 views
3

我設置編程複選框,suspendEvents不起作用

,因爲我將它設置動態我想暫停(改變事件)設備上的事件,因爲複選框的變化,我有一些其他的事情被執行。

我已經嘗試使用下面的代碼,但它不起作用。

checkbox.suspendEvents(false); 
checkbox.setValue(true); 
checkbox.resumeEvents(); 

感謝

+0

以何種方式無效? – pherris 2014-09-11 20:26:35

+0

它不會暫停複選框 – 2014-09-12 09:49:11

回答

7

複選框。 setRawValue(true);方法不會觸發更改事件。

看起來像一個extjs bug,解決方法是設置checkbox.lastValue = true;以及setRawValue以檢測下一個更改事件。

+0

的事件,這是行不通的,它會正確設置複選框,但是當我取消選中它時不會聽取更改導致功能丟失的事件。無論如何感謝您的回覆 – 2014-09-12 09:48:13

+0

是的你是對的,編輯我的答案與解決方法.. – newmount 2014-09-12 10:52:38

+0

感謝您的解決方法,它現在工作。 :-) – 2014-09-12 12:20:50

1

雖然這麼想的看來是任何你的代碼錯誤你嘗試過:

checkbox.suspendEvent('change'); 
checkbox.setValue(true); 
checkbox.resumeEvent('change'); 
+0

是的,我也試過,但沒有運氣 – 2014-09-12 12:08:17

+0

適合我;) – Nilay 2018-02-13 04:49:29

0

的suspendEvent,不適用resumeEvent在控制器中定義的事件監聽器,只在事件偵聽器直接在零件。

newmount的解決方案是最好的解決方法

2

的suspendEvent事件的錯誤是有組合框了。下面是錯誤報告:

我發現修復它的組合框的解決方案。也許該解決方案也適用於複選框。它適用於Ext JS 4.2.1。也許還有其他版本。

checkbox.suspendCheckChange++; 
checkbox.setValue(true); 
checkbox.suspendCheckChange--; 
0

如果您正在尋找將值重置爲原來的值(例如未驗證或保存)。

checkbox.reset();

在extjs中正常工作4.2.2