andPat
andPat

Reputation: 4522

Get radio button choice value in Ajax Behavior

How can I get radio button choice "live" in wicket? I mean if I've a radio button with two choices A and B and I want to add an ajax behavior (on change, on update, whatever works) to the button so that if I chose A it happens something in the page, if I chose B happens something else. Can You help me?

Upvotes: 3

Views: 5896

Answers (1)

Xavi López
Xavi López

Reputation: 27880

Just add an AjaxFormChoiceComponentUpdatingBehavior to the RadioChoice:

RadioChoice radioChoice = new RadioChoice("myRadio", choiceList);
radioChoice.add( new AjaxFormChoiceComponentUpdatingBehavior("onchange") { 
    protected void onUpdate(AjaxRequestTarget target) {
        // Ajax actions here
        System.out.println("The selected value is " + getComponent().getDefaultModelObjectAsString()));
    }
}  );
form.add(radioChoice);

The Model of the RadioChoice will already be updated when executing onUpdate. Remember to add to target all components that are to be refreshed via AJAX (and of course to set setOutputMarkupId(true) to them).

There's an online example with source code of what you're looking for here. The relevant source code file is this one.

Upvotes: 10

Related Questions