2011-05-11 18 views

Respuesta

27

Debe suspender los eventos antes de establecer el valor y reanudar eventos después de esto. Por ejemplo:

myCheckBox.suspendEvents(false); // Stop all events. 
           //Be careful with it. Dont forget resume events! 
myCheckBox.setValue(!myCheckBox.getValue()); // invert value 
myCheckBox.resumeEvents(); // resume events 
1

¿Por qué no acaba de establecer r.checked = true, ¿eso no funciona?

1

¿Por qué no acaba de establecer r.checked = true, does not works?

El establecimiento de atributos verificados solo afectará al control no renderizado para asignar el valor de control inicial. Después del renderizado no puede usar esto para cambiar el valor.

Suspender/Reanudar eventos es una buena práctica para cambiar el valor de control sin enviar notificaciones.

También se puede poner a estado de activación immedially elemento DOM:

item.el.dom.checked = true;

0

yo ya estaba tratando la respuesta aceptada antes de googlear pero no funcionaba en 4.1.3. Lo siguiente hizo:

myCheckBox.setRawValue(true); 

Espero que esto ayude a los futuros usuarios de Google.

+1

Solo un poco de precaución: al usar "setRawValue", el primer evento de desmarcar no se disparará. Fuente: http://www.sencha.com/forum/showthread.php?263404-Checkbox-does-not-fire-quot-change-quot-event-on-the-first-change-after-setRawValue(true) . & s = 2fb682a6d30f35675c73e5c6230c476d – pvieira

0

Calling suspendEvents(false) antes de fijar el valor y después resumeEvents() es un enfoque más genérico que setRawValue porque si estás usando convertidores (por ejemplo, 1 es true y 0 es false) van a seguir trabajando.

Cuestiones relacionadas