Ярлык установлен на видимый не показывается - PullRequest
0 голосов
/ 28 февраля 2019

Я добавил метку внутри контейнера в своем классе, который затем настроен как недопустимый, у меня есть метод onSubmit, который содержит операторы if.Здесь ярлык должен быть виден, когда он попадает в него.Однако это не проявляется.

    private Component errorMessage;

    @Override
        protected void onInitialize() {
            super.onInitialize();
        WebMarkupContainer cnt = new WebMarkupContainer("cnt");
            cnt.setOutputMarkupId(true);
        errorMessage = new Label("errorMessageData", "Can not enter a weekend 
        Date, Please enter a weekday").setOutputMarkupId(true);
        cnt.add(errorMessage);
        errorMessage.setVisible(false);
        add(cnt);

public InputForm(String id, final WebMarkupContainer cnt) {

            IndicatingAjaxSubmitLink submitMcb = new IndicatingAjaxSubmitLink("submit") {

                @Override
                protected void onSubmit(AjaxRequestTarget target, Form<?> form) {                       
                            if (!DateUtilities.isWorkDay(mcEntity.getCorrectionDate())) {

                                errorMessage.setVisible(true);
                                return;
                            }
                        }

Я сократил код и удалил соответствующие части для удобства чтения.Метка отображается правильно и в правильном месте, если я не установил значение false, но установка в false в операторе if не удалит его.Что мне не хватает?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

В дополнение к тому, что @Joachim Rohde сказал, вам нужно заменить errorMessage.setOutputMarkupId(true); на errorMessage.setOutputMarkupPlaceholderTag(true);, потому что вы начинаете с невидимого состояния.

0 голосов
/ 28 февраля 2019

Вам необходимо добавить свой ярлык в AjaxRequestTarget, чтобы отразить сделанные вами изменения:

[...]
errorMessage.setVisible(true);
target.add(errorMessage);
return;
...