如何在检票口更改颜色后刷新标签
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 示例代码:
我使用 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 示例代码: