列表的AJAX更新后没有jquery样式的更新
问题描述:
我正在使用wicket更新列表。该列表将被更新(ajax请求被发送,响应被发送并且列表被更新)。到目前为止,一切都很好。列表的AJAX更新后没有jquery样式的更新
更新列表后,我调用javascript/jquery方法$('ul')。listview('refresh')来(重新)添加所有必要的jquery样式。但是这不会发生。 (更新)列表将显示为无风格。
有什么想法,我失踪了吗?
HTML部分:
...
<ul id="sitzungenList" wicket:id="sitzungenListContainer" data-role="listview" data-divider-theme="b" data-inset="true">
<li wicket:id="sitzungen" data-theme="c">
<a href="#page2" data-transition="slide">
<span wicket:id="sitzungName">[Sitzung]</span>
</a>
</li>
</ul>
...
的Java的部分(名单的初始化):
...
final WebMarkupContainer sitzungenListContainer = new WebMarkupContainer("sitzungenListContainer");
sitzungenListContainer.setOutputMarkupId(true);
sitzungenForm.add(sitzungenListContainer);
final ListView<Meeting> sitzungenList = new ListView<Meeting>("sitzungen", meetingsService.getAll(Meeting.class)) {
@Override
protected void populateItem(ListItem<Meeting> listItem) {
listItem.add(new Label("sitzungName", listItem.getModelObject().getName()));
}
};
sitzungenListContainer.add(sitzungenList);
...
以及列表的最后更新(的AjaxButton的的onsubmit方法中):
...
sitzungenList.setList(meetingsService.getMeetings(sitzungenSearchParam));
target.add(sitzungenListContainer);
target.appendJavaScript("$('ul').listview('refresh')");
...
答
使用Wicket的AJAX功能,您可以将替换为为<ul>
标记及其子项的完整DOM节点。因此,JQuery不会将<ul>
识别为列表视图。按照answer to this question需要调用列表视图,而不是构造刷新:
target.appendJavaScript("$('ul').listview()");
+0
谢谢Martijn!现在就像魅力一样。 – magomi 2012-04-16 10:04:33
做了一些更多的测试 - 在“检票阿贾克斯调试窗口”显示以下错误:'错误:Wicket.Ajax.Call.processEvaluation:异常评估javascript:在初始化之前不能在listview上调用方法;试图调用方法'刷新' '。 – magomi 2012-04-16 09:52:35