列表的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')"); 
... 
+0

做了一些更多的测试 - 在“检票阿贾克斯调试窗口”显示以下错误:'错误:Wicket.Ajax.Call.processEvaluation:异常评估javascript:在初始化之前不能在listview上调用方法;试图调用方法'刷新' '。 – magomi 2012-04-16 09:52:35

使用Wicket的AJAX功能,您可以将替换为<ul>标记及其子项的完整DOM节点。因此,JQuery不会将<ul>识别为列表视图。按照answer to this question需要调用列表视图,而不是构造刷新:

target.appendJavaScript("$('ul').listview()"); 
+0

谢谢Martijn!现在就像魅力一样。 – magomi 2012-04-16 10:04:33