Wicket Page 的 ListView LoadableDetachableModel 通过 AJAX 调用进行了修改。页面不重绘

Wicket Page's ListView LoadableDetachableModel is modified via AJAX call. Page doesn't re-draw

考虑一个子class包含WebPage的页面。它的构造函数创建 并添加一个 WebMarkupContainer,其中包含一个 ListView 组件 由 LoadableDetachableModel.

支持

该页面还添加了两个 AbstractDefaultAjaxBehavior 的匿名子 class 实例 [每个都覆盖 class' renderHeadrespond 方法] .

相应的 HTML 包含 <div>wicket:id 绑定到 WMC <table> <tr> 绑定到 ListView 组件的 ListItems.

页面第一次显示正确。

基于用户与客户端的交互,所讨论的 AbstractDefaultAjaxBehavior 设置有关模型模型对象的信息。该信息旨在用于更改特定 listitem 在 table 的行中显示为 <td> 的方式——特别是选定行的文本应以粗体显示。

诊断调试器断点和 System.out 两侧的信息 AJAX 调用确认行为的 respond 方法被正确调用并且模型对象被正确修改。

页面永远不会自动重新绘制。 手动重新加载页面 从浏览器演示正确的行为。

我研究了这个问题并发现了多种可能相关的问题 我尝试过的解决方案,包括

有什么建议吗?

AbstractDefaultAjaxBehavior 不会自动更新任何组件。

target.add( webMarkupContainer)有帮助吗?如果没有,你打电话给webMarkupContainer.setOutputMarkupId(true)了吗?