2012-04-06 89 views
2

我正在尝试对齐网格(1,4)中的网格单元格的内容。每个单元格都包含一个ListBox。我将CSS应用到每一列,并且我可以调整无法对齐中心的ListBoxes的宽度。即使我直接在它们上面应用CSS而不是单元格,ListBox也不会移动到单元格的中心。 !重要的是不会改变任何事情。什么可能是错的?下面是相关代码:将网格中的单元格内容对齐gwt

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; 

}

回答

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 attribute