java - 如何强制 Vaadin v8 更新屏幕?

标签 java vaadin

我有一个小型 Vaadin v8 应用程序,它有几个输入字段(组合框、选择组等)。其中大部分的内容由第一个 ComboBox 的所选内容决定。但是,当我在其中选择某些内容时,所有其他内容都保持空白,直到我单击其中一个,此时它们都会更新。这不是期望的行为,但我认为这是由于服务器端是最新的但没有更新客户端 View 引起的。 (即使在我的第一个 Combobox 的 ValueChangeListener 中添加 requestRepaint() 时)

即使没有点击其他组件,也必须有某种方法强制 Vaadin 获取我希望它显示的数据?

编辑 我不能这么快发布我自己的问题的答案,所以我暂时把它放在这里:

我发现有一个 javascript 方法可以同步客户端和服务器。

myComponent.getApplication().getMainWindow().executeJavaScript("javascript:vaadin.forceSync();");

我现在遇到的唯一问题是我的一个组合框上的 ValueChangeListener 仍然只在我单击另一个组合框(或同一个组合框两次)时触发。这是最奇怪的事情,因为第二个组合框在加载时会完美地触发它的事件。

最佳答案

第一个 ComboBox 是否处于“立即”模式?

如果不是,它可能应该是:component.setImmediate(true)。

参见 https://vaadin.com/book/-/page/components.selection.html

关于java - 如何强制 Vaadin v8 更新屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7607702/

相关文章:

java - 如何根据需要构建带有滚动条的扩展 vaadin 窗口

java - Wicket:创建指向数据表中行的动态 anchor 链接

java - 如何验证生成的 Java 代码的语法?

mysql - vaadin 和 mysql 数据库中的乐观锁定

java - 从 v22 升级到 v24 后,某些 Vaadin 组件未呈现

java - 在 Vaadin 中动态注入(inject) CSS

java - 使用 Nginx 和 Tomcat 支持 URL 中的动态路径

java - 正则表达式 Java 端点注释

java - 如果我让字符串引用转义,这会阻止包含对象被垃圾收集吗?

java - Vaadin Flow 与模块化 Java 兼容吗?