BSeitkazin
BSeitkazin

Reputation: 3059

How to add AjaxLink in Wicket ListView?

I want to populate AjaxLink in ListView, and I have smth like:

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");    
            }
         });
    }
};

and markup:

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

But I have just an empty page.

Upvotes: 1

Views: 1149

Answers (1)

Martin
Martin

Reputation: 1273

The < a> tags are empty here:

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

There is no text to click on. Add some text:

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

or a label:

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

with 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);
}

Upvotes: 2

Related Questions