2

我正在尝试在 Grid(1,4) 中对齐 Grid 单元格的内容。每个单元格都包含一个 ListBox。我将 CSS 应用于每一列,尽管我可以调整宽度,但我无法将列表框对齐在中心。即使我直接在它们而不是单元格上应用 CSS,列表框也不会移动到单元格的中心。!important 不会改变任何东西。有什么问题?以下是相关代码:

Grid mYGrid = new Grid(1, 4);

    mYGrid.addStyleName("mYgrid");
    mYGrid.getCellFormatter().setWidth(0, 0, "150");
    mYGrid.getCellFormatter().setWidth(0, 3, "150");

    mYGrid.setWidget(0, 1, getMonthsList() );
    mYGrid.setWidget(0, 2, getYearsList() );

    mYGrid.getColumnFormatter().setStyleName(1,"monthsCell");
    mYGrid.getColumnFormatter().setStyleName(2,"yearsCell");

CSS:

.monthsCell{
width:200px;
margin-left: auto;
margin-right: auto;

}

.yearsCell{
width:200px;
margin-left: auto  !important;
margin-right: auto !important;

}

4

1 回答 1

12

CellFormatter 类中有一些方法setHorizontalAlignment()setVerticalAlignment()

 Grid grid = new Grid();
 HTMLTable.CellFormatter formatter = grid.getCellFormatter();
 formatter.setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER);
 formatter.setVerticalAlignment(0, 0, HasVerticalAlignment.ALIGN_MIDDLE);

在您的 CSS 中作为该方法的替代品,setVerticalAlignment()使用:vertical-align:middle;setHorizontalAlignment()使用td align 属性

于 2012-04-06T14:22:43.033 回答