我有一个 Apache Wicket 页面,该页面有一个 DataTable,其中有一列需要显示状态,Red、Yellow、Green。如果列的内容是红色,我想将 CSS 类更改为红色状态,如果是黄色则为黄色状态,否则为绿色状态。我似乎无法从可点击的属性列中获取数据。您如何获取 PropertyColumn 中的数据,或者是否有另一种方法可以在 DataTable 中执行此操作?谢谢!
更新
谢谢你,马丁。这是我想出的:
@Override
public void populateItem(Item<ICellPopulator<T>> cellItem, String componentId, final IModel<T> rowModel) {
Label label = new Label(componentId, getDataModel(rowModel));
cellItem.add(label);
LOGGER.debug("populateItem: label DefaultModelObject: {}", (String) label.getDefaultModelObject());
label.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID = 1L;
ProcessingTime processingTime = (ProcessingTime) rowModel.getObject();
@Override
public String getObject() {
String cssClass = null;
if (StringUtils.equals("Red", processingTime.getStatus())) {
cssClass = "red-status";
} else if (StringUtils.equals("Yellow", processingTime.getStatus())) {
cssClass = "yellow-status";
} else if (StringUtils.equals("Green", processingTime.getStatus())) {
cssClass = "green-status";
} else {
cssClass = "process-status";
}
return cssClass;
}
}));
}