我用的是wicket 1.5
当我改变颜色时,只有在使用f5刷新之后,页面上的颜色才会真正改变。如何在后台刷新?
我使用以下行来更改颜色:datedescription.add(attributemodifier.replace(“style”,”color:red;")); 添加(日期描述);
更新#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);
}
update#3final(它帮助了我)我在更改isalarmdatestatus时错过了这一行代码,现在它可以正常工作了。多亏了安德里亚!
target.add(dateDescription);
1条答案
按热度按时间w3nuxt5m1#
您的代码行看起来不错,但是您必须使用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