如何居中对齐GXT网格列中的复选框单元格

时间:2014-03-16 18:47:58

标签: gxt

我的代码:

    List<ColumnConfig<Reminder, ?>> ccs = new LinkedList<ColumnConfig<Reminder, ?>>();
    CheckBoxCell cbc = new CheckBoxCell();
    ColumnConfig<Reminder,Boolean> applicableColumn = new ColumnConfig<Reminder,Boolean>(properties.applicable(),100,"Applicable");
    applicableColumn.setCell(cbc);
    applicableColumn.setAlignment(HasHorizontalAlignment.ALIGN_CENTER);

这不起作用。

1 个答案:

答案 0 :(得分:2)

我意识到这个答案对你的目的来说可能为时已晚,但它可能有助于某人寻找同样的问题。这是我使用的代码:

private void centerCheckBox(final ColumnConfig<Pet, ?> columnConfig) {
  final int leftPadding = (columnConfig.getWidth() - 12) / 2;
  final String styles = "padding: 3px 0px 0px " + leftPadding + "px;";
  final SafeStyles textStyles = SafeStylesUtils.fromTrustedString(styles);
  columnConfig.setColumnTextStyle(textStyles);
}

除了在创建ColumnConfig后为每个复选框调用此方法之外,我还为ColumnWidthChange事件处理程序中的每个复选框列调用它(事件处理程序已添加到ColumnModel })。这是我的列宽更改处理程序的代码(注意:我在创建ColumnConfig实例时将每个复选框列配置添加到一个集合中):

columnModel.addColumnWidthChangeHandler(new ColumnWidthChangeHandler() {
  @Override
  public void onColumnWidthChange(final ColumnWidthChangeEvent event) {
    final ColumnConfig<Pet, ?> petColumnConfig = columnConfigList.get(event.getIndex());
    if (_checkBoxSet.contains(petColumnConfig)) {
      centerCheckBox(petColumnConfig);
      _grid.getView().refresh(true);
    }
  }
});