Как я изменяю текст ссылки в Калитке?

Я создал ссылку со статическим текстом. Это хорошо работает, но теперь я также хочу изменить текст, когда Вы нажимаете на ссылку.

Я добрался до этого:

add(new Link("doAnything") {
    @Override
    public void onClick() {
            // change the text!
            // this.modelChanging();
            // this.detach();
    }
});

Я надеюсь, что можно дать мне некоторый легкий совет - я действительно плохо знаком с этим :)

Наилучшие пожелания Elias

11
задан Sean Patrick Floyd 26 July 2010 в 19:35
поделиться

2 ответа

HTML:

<html><head></head><body>
<wicket:panel>

    <a href="" wicket:id="link">
        <wicket:container wicket:id="label" />
    </a>

</wicket:panel>
</body></html>

java:

public class MyPanel extends Panel{

    private static class Mybean{

        String labelText = "click me";

        public String getLabelText(){
            return this.labelText;
        }

        public void setLabelText(final String labelText){
            this.labelText = labelText;
        }

    }

    public MyPanel(final String id){
        super(id);
        final Mybean bean = new Mybean();
        this.add(new Link<Void>("link"){

            private static final long serialVersionUID = 1L;

            @Override
            public void onClick(){
                bean.setLabelText("Thanks for clicking");
            }
        }.add(new Label("label", new PropertyModel<String>(bean, "labelText")))

        );

    }

}

Я обычно использую wicket: container, чтобы не загрязнять HTML лишними элементами (калитка: контейнер не будет отображаться в производство)

19
ответ дан 3 December 2019 в 02:10
поделиться

нужно подкрепить текст в ссылке собственной моделью:

и в java:

add(new Link("doAnything").add(new Label("linktext", Model.of("i 'm the text"));

еще лучше, если вы используете (Compound)PropertyModel и имеете функцию getLinktext(), которая возвращает текст в зависимости от состояния.

8
ответ дан 3 December 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: