1

ユーザーが私のListViewのアイテムをクリックしたときに、クリックした行の情報を含む別のページをロードしたいと思います。次のように、onClickイベントをアイテムに追加してみました。

item.add(new AjaxFormValidatingBehavior(ClientSearchForm.this, "onclick") {

    @Override
    protected void onSubmit(AjaxRequestTarget target) {

        ClientPage.this.setResponsePage(new EditClientPage());
    }
});

しかし、他のページをロードする方法がわかりません。インスタンス化する必要がありますか?

編集:上記のコードの使用は機能しましたが、最初のアイテムがクリックされたときにのみロードされます。

要求に応じたHTML。

<table border="1" wicket:id="clientTable" id="client-table">
                    <tr wicket:id="clientRow" id="client-row">
                        <td>
                            <span wicket:id="row1"></span>
                        </td>

                        <td>
                            <span wicket:id="row2"></span>  
                        </td>
                    </tr>
                </table>
4

1 に答える 1

2

私はいくつかのテストを行いましたが、あなたのソリューションは私にとってうまく機能しました。

したがって、問題はマークアップにあると思われます。これは、onclickイベントをサポートしていない可能性があります。

これが私の作業サンプルです:

public class HomePage extends WebPage {

    public HomePage(final PageParameters parameters) {

        add( new Label( "label", parameters.getString( "param")));

        add( new ListView( "list", Arrays.asList( "foo", "bar") ) {
            @Override
            protected void populateItem(final ListItem item) {
                item.add( new Label( "label", "item model is "+item.getModelObject() ) );
                item.add( new AjaxEventBehavior( "onclick") {

                    @Override
                    protected void onEvent(AjaxRequestTarget target) {
                        PageParameters pp = new PageParameters( "param="+item.getModelObject() );
                        setResponsePage( new HomePage( pp ) );
                    }
                });

            }
        });
    }
}

そしてhtml:

<html>
    <head>
        <title>Wicket Quickstart Archetype Homepage</title>
    </head>
    <body>
        <span wicket:id="label">message will be here</span>
        <div wicket:id="list">Static stuff and <span wicket:id="label">dynamic stuff</span></div>
    </body>
</html>
于 2012-08-29T20:49:07.900 に答える