如何在检票口更改颜色后刷新标签

How to refresh label after changing color in wicket

我使用 Wicket 1.5

当我改变颜色时,只有在使用 F5 刷新后页面上才会真正改变。如何在后台刷新?

我用这条线来改变颜色: dateDescription.add(AttributeModifier.replace("样式", "颜色:红色;")); 添加(日期说明);

更新 #1 现在我使用 AJAX 但仍然必须刷新页面才能更改颜色。你能告诉我我做错了什么吗?

    // in page class
    public class FilterUpdateBehavior extends AjaxFormComponentUpdatingBehavior {
        public FilterUpdateBehavior(String event) {
            super(event);
        }

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            RefreshResult result = getResult(target);
            if (result.getStatus() == RefreshResultStatus.DATE_NOT_SET) {
                dateIntervalFilterPanel.setAlarmDateStatus(true);
            } else {
                dateIntervalFilterPanel.setAlarmDateStatus(false);
            }
        }
    }
    
    
    // in date panel class
    dateDescription.add(new AttributeModifier("style", new AbstractReadOnlyModel<String>() {
                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    String cssClass = null;
                    if (isAlarmDateStatus()) {
                        cssClass = "color:red;";
                    } else {
                        cssClass = "color:black;";
                    }
                    return cssClass;
                }
            }));
    add(dateDescription);

更新#2

    public RefreshResult getResults(AjaxRequestTarget target) {
        // ... somewhere here additional logic of getting particulate RefreshResult
        target.add(table);
        target.add(paging);
        target.add(loadingPanel);
        return new RefreshResult(resultType);
    }

更新#3 最终版(对我有帮助) 当我更改 isAlarmDateStatus 时,我错过了这个代码行,现在它工作正常。感谢安德里亚!

    target.add(dateDescription);

您的代码行看起来正确,但您必须使用 AJAX 来反映您的更改,而无需重新加载整个页面。不幸的是,Wicket 1.5 确实过时了,在线资源很少可以为您提供 AJAX 支持的示例。您可以尝试在此处查看旧的 1.5 AJAX 示例代码:

https://github.com/apache/wicket/tree/build/wicket-1.5.17/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin