Как я могу выровнять ячейку по правому краю в столбце таблицы Wicket?

#datatable #wicket

#datatable #wicket

Вопрос:

Я бы хотел, чтобы a PropertyColumn DataTable было выровнено по правому краю. Но если я попытаюсь добавить a new SimpleAttributeModifier("align", "right") к элементу ячейки, он будет добавлен в a span внутри td , а не td сам.

 public class AssetSizeColumn<T> extends PropertyColumn<T> {
...
@SuppressWarnings("unchecked")
public void populateItem(Item<ICellPopulator<T>> item, String componentId, IModel<T> rowModel) {
    IModel<Long> model = (IModel<Long>) createLabelModel(rowModel);
    Component label = new Label(componentId, model.getValue().toString());
    label.add(new SimpleAttributeModifier("align", "right"));
    item.add(label);
}
  

Могу ли я перейти td к настройке выравнивания?

Ответ №1:

Хитрость в том, что элемент td является родительским элементом, как только он добавляется в ICellPopulator , так что мы можем сразу добавить к нему модификатор.

 public void populateItem(Item<ICellPopulator<T>> item, String componentId, IModel<T> rowModel) {
    IModel<Long> model = (IModel<Long>) createLabelModel(rowModel);
    Component label = new Label(componentId, model.getObject().toString());
    item.add(label);
    label.getParent().add(new SimpleAttributeModifier("align", "right"));
}