我在一个窗口内有几个TextField 以及一个Button,例如aButton。TextField、Button 和 window 都有 setImmediate(True)。
当 TextField 失去焦点时,会执行一些验证代码,如果失败则调用:aButton.setEnabled(False);
当在一个 TextField 中输入了不正确的数据然后失去焦点时,调试器会显示调用了 aButton.setEnabled(False) 但 aButton 看起来仍处于启用状态。
从这里可能会发生两种可能的情况:
1.) 如果修改另一个 TextField 中的数据并退出该字段(失去焦点),则该字段的验证可能成功或失败,但系统知道调用 aButton.setEnabled(False),因为之前的 TextField 仍然无效。这一次虽然 aButton 在视觉上被禁用了。
2.) 如果单击视觉上启用的 aButton,它会产生此警告,然后视觉上会变为禁用:警告:忽略禁用组件的变量更改 < class 'ui.button.Button'>,caption=OK
当前使用 Vaadin 6.7.3
是否有任何已知的解决方法可以强制 aButton 在手动设置为禁用后立即在视觉上禁用(强制客户端更新)?