【发布时间】:2011-05-26 14:15:28
【问题描述】:
是否可以在GWT中设置CellTable的列宽?
【问题讨论】:
是否可以在GWT中设置CellTable的列宽?
【问题讨论】:
编辑:从 GWT 2.2 开始支持 table.setWidth 和 table.setColumnWidth
table.setWidth("100%", true);
table.setColumnWidth(nameColumn, 35.0, Unit.PCT);
table.setColumnWidth(addressColumn, 65.0, Unit.PCT);
我能够使用一种以编程方式设置宽度的方法来扩展 CellTable。这有点像 hack,因为应该执行此操作的所有真实方法都是 CellTable 私有的,而且 GWT 似乎应该直接提供此方法,但它似乎有效。
public void setColumnWidths(List<Integer> widths)
{
TableElement tel = TableElement.as(getElement());
NodeList<Element> colgroups = tel.getElementsByTagName("colgroup");
if (colgroups.getLength() == 1)
{
TableColElement cge = TableColElement.as(colgroups.getItem(0));
NodeList<Element> cols = cge.getElementsByTagName("col");
for (int j = 0; j < widths.size(); j++)
{
TableColElement column = null;
if (cols.getLength() > j)
{
column = TableColElement.as(cols.getItem(j));
}
else
{
column = cge.appendChild(Document.get().createColElement());
}
column.setWidth(widths.get(j)+"px");
}
}
}
【讨论】:
您可以使用addColumnStyleName(int index, java.lang.String styleName) 方法为特定列使用样式名。
【讨论】:
对我有用的是在我的 CSS 中添加一个新类。此类仅适用于长度因数据而异的选择元素。
.__gwt_cell select{
width:170px;
}
然后将其应用于我的特定单元格样式,例如 o:
table.getColumn(3).setCellStyleNames("yourstyle");
【讨论】:
CellTable 的 GWT 文档涵盖了这一点,请参阅: http://www.gwtproject.org/doc/latest/DevGuideUiCellTable.html
在“控制列宽”下。
【讨论】: