Java 小门页';的ListView LoadableDetachableModel通过AJAX调用进行修改。第页没有';不要再画了

Java 小门页';的ListView LoadableDetachableModel通过AJAX调用进行修改。第页没有';不要再画了,java,ajax,listview,model,wicket,Java,Ajax,Listview,Model,Wicket,考虑一个包含子类网页的页面。它的构造函数创建 并添加一个WebMarkupContainer,其中包含一个ListView组件 由LoadableDetachableModel支持 该页面还添加了AbstractDefaultAjaxBehavior[每个都覆盖类'renderHead和respond方法]的匿名子类的两个实例 相应的HTML包含一个由wicket:id绑定到WMC的 和一个的绑定到列表视图组件的列表项 第一次页面显示正确 基于用户与客户端的交互,问题中的AbstractDefa

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

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

相应的HTML包含一个由
wicket:id
绑定到WMC的
和一个
绑定到
列表视图
组件的
列表项

第一次页面显示正确

基于用户与客户端的交互,问题中的
AbstractDefaultAjaxBehavior
设置了模型的模型对象的信息。该信息用于更改特定的
列表项
在表中的行中显示为
的方式,特别是选定行的文本应以粗体显示

诊断调试器断点和 AJAX调用确认行为的
respond
方法被正确调用,并且模型对象被正确修改

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

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

  • 调用
    target.add(webMarkupContainer)从行为的
    
    响应
    方法,与

  • 调用
    target.appendJavaScript(“window.location.reload();”)来自
    响应
    方法

  • 调用
    setResponsePage(此)
    设置响应页面(Page.class)
    设置响应页面(getPage())来自
    respond
    方法,以及来自页面上重写的
    onBeforeRender
    方法


有什么建议吗?

AbstractDefaultAjaxBehavior不会自动更新任何组件


Did
target.add(webMarkupContainer)
help?如果没有,您是否调用了
webMarkupContainer.setOutputMarkupId(true)

我以各种组合使用了这两种方法,但均未成功。我按照您的指示重新执行了AbstractDefaultAjaxBehavior
,并将有问题的事件作为一个
AjaxEventBehavior
重新执行,现在可以正常工作了。谢谢你的提示——我想我错过了这一路上的某个有用的地方。如果有人不介意的话,他们可以给我指出相关的参考信息,其中描述了抽象类的非更新性质。再次感谢。