1

ウィケットを使ってリストを更新しています。リストが更新されます (ajax リクエストが行われ、応答が送信され、リストが更新されました)。これまでのところ、すべて問題ありません。

リストの更新後、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')");
...
4

1 に答える 1

2

Wicket の AJAX 機能を使用して、タグとその子の完全な DOM ノードを置き換えます。<ul>したがって、JQuery は をリストビューとして認識しません<ul>この質問への回答によると、更新の代わりにリストビュー コンストラクターを呼び出す必要があります。

target.appendJavaScript("$('ul').listview()");
于 2012-04-16T10:00:07.667 に答える