【问题标题】:How to add AjaxLink in Wicket ListView?如何在 Wicket ListView 中添加 AjaxLink?
【发布时间】:2014-07-06 23:38:06
【问题描述】:

我想在ListView 中填充AjaxLink,我有类似的东西:

list = Arrays.asList(new String[]{
        new String("1-50"),
        new String("50-100"),
        new String("100-150"),});
listItems = new ListView("your-list-view", list) {

    @Override
    protected void populateItem(final ListItem li) {

        li.add(new AjaxLink("label", li.getModel()){

            @Override
            public void onClick(AjaxRequestTarget target) {
                System.out.println("AJAX WORKS");    
            }
         });
    }
};

和标记:

<ul>
    <li wicket:id="your-list-view"><a href="#" wicket:id="label"></a></li>
</ul>

但我只有一个空白页面。

【问题讨论】:

    标签: listview hyperlink wicket java-ee-6 populate


    【解决方案1】:

    这里的标签是空的:

    <li wicket:id="your-list-view"><a href="#" wicket:id="label"></a></li>
    

    没有可点击的文字。添加一些文字:

    <li wicket:id="your-list-view"><a href="#" wicket:id="label">Link</a></li>
    

    或标签:

    <li wicket:id="your-list-view">
        <a href="#" wicket:id="label"><span wicket:id="linklabel"></span></a>
    </li>
    

    用java

    @Override
    protected void populateItem(final ListItem li) {
        AjaxLink alink = new AjaxLink("label", li.getModel()) {
            @Override
            public void onClick(AjaxRequestTarget target) {
                System.out.println("AJAX WORKS");    
            }
         };
         alink.add(new Label("linklabel", "Yes ajax works!"));
         li.add(alink);
    }
    

    【讨论】:

    • 当我手动在&lt;a&gt;&lt;/a&gt; 标签之间添加一些文本时,它可以工作。但是当我尝试使用你的第二种方法来附加label时,我有一个错误:Last cause: Unable to find component with id 'linklabel' in [AjaxLink [Component id = label]]
    • 一个括号错误。我将标签添加到列表项而不是 ajaxlink。我改变了我的答案,代码现在应该可以工作了。我现在将标签添加到 ajaxlink,因为标签位于 标签内。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 2012-05-21
    相关资源
    最近更新 更多