我正在努力从 ZK 8.5.2.1 升级到版本 10,这是雅加达的最新修补程序。 修复了多个复杂问题后,我现在陷入了 Messagebox.show() 的意外行为。 我需要用户选择一个 Messagebox btn,然后根据用户的选择更新数据库中的一些数据。在旧版本中,消息框显示模式窗口,同时,我的服务器代码继续处理并将内容推送到浏览器。所以在消息框后面有一个完全渲染的页面。 现在,在 ZK10 中,Java 代码也继续运行,但浏览器不会在 Messagebox 后台渲染任何组件。
我在文档中发现的唯一一件事是不推荐使用我没有使用的事件线程处理。 当我禁用显示消息框时,页面呈现没有任何问题。
我应该怎样做才能恢复预期的行为?
创建消息框的片段(唯一的区别):
// ...doAfterCompose() - check if its read or unread and offer user to mark as read
if (!TrueFalseConverter.instance().nvlFrom(entity.getLPrectena())) {
Messagebox.show(Labels.getLabel("diaries.make.msg.question.order.set_read.text"), Labels.getLabel("diaries.make.msg.question.order.set_read.title"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION, new SerializableEventListener<Event>() {
@Override
public void onEvent(Event event) throws Exception {
if (Messagebox.ON_YES.equals(event.getName())) {
entity.setLPrectena(TrueFalseConverter.instance().to(Boolean.TRUE));
app.r.ovdenObjednavkyRepository.store(entity);
}
}
});
}
// ...continue with components creation and render the page
我无法通过仅在
Messagebox.show()
中调用
doAfterCompose()
来重现您所描述的内容
请您打开浏览器开发者工具 > 控制台查看是否有错误信息?