【发布时间】:2017-02-22 03:32:40
【问题描述】:
考虑一个子类WebPage 的页面。它的构造函数创建
并添加一个WebMarkupContainer,其中包含一个ListView 组件
由LoadableDetachableModel 支持。
该页面还添加了AbstractDefaultAjaxBehavior 的两个匿名子类实例[每个都覆盖类的renderHead 和respond 方法]。
相应的 HTML 包含一个由wicket:id 绑定到 WMC 的 <div>
和一个<table> 和<tr> 绑定到ListView 组件的ListItems。
页面第一次正确显示。
基于用户与客户端的交互,所讨论的AbstractDefaultAjaxBehavior 设置有关模型的模型对象的信息。该信息旨在用于更改特定listitem 在表格行内显示为<td> 的方式——特别是选定行的文本应以粗体显示。
诊断调试器断点和System.out两侧的信息
AJAX 调用确认行为的respond 方法被正确调用并且模型对象被正确修改。
页面不会自动重新绘制。 手动重新加载页面 从浏览器显示正确的行为。
我研究了这个问题,发现了各种可能相关的问题 我尝试过的解决方案,包括
从行为的调用
target.add( webMarkupContainer);respond方法,结合从
respond方法调用target.appendJavaScript( "window.location.reload();" );。从
respond方法以及从页面上重写的onBeforeRender方法调用setResponsePage( this );、setResponsePage( Page.class );和setResponsePage( getPage() );。
有什么建议吗?
【问题讨论】:
标签: java ajax listview model wicket