0

这个链接作者建议:

table.setWidth("100%", true);
table.setColumnWidth(nameColumn, 35.0, Unit.PCT);
table.setColumnWidth(addressColumn, 65.0, Unit.PCT);

为了使 CellTable 列宽起作用,但是在我的项目中nameColumn包含一个超长的文本,那么该列将占据几乎所有浏览器视图,显然列宽不起作用,有人可以对此有所了解吗?

nameColumn定义如下:

        TextColumn<Person> nameColumn = new TextColumn<Person>()
        {

            @Override
            public String getValue( Person object )
            {
                return object.getUserName();
            }
        };
4

1 回答 1

0

您可以使用以下方法在列单元格上设置自定义样式:

nameColumn.setCellStyleNames("name-cell");

为单元格生成(in )以下结构DOM

<td class="xxxxxxxx xxxxxx name-cell">
   <div style="outline:none;">Very long name ...</div>
</td>

因此,您必须定义以下css类来设置所需的样式并限制单元格和文本大小:

.name-cell {
...
}

.name-cell div {
...
}

更新

我测试了这个方法table.setColumnWidth(,对我来说效果很好。这是我的做法:

  • 由 UI binder 构建的表

  • 创建列

  • 设置表格宽度

  • 向表中添加列

  • 设置列宽(带table.setColumnWidth

当您计算单元格宽度时,不要忘记考虑填充。

使用 GWT 2.4

于 2012-06-21T16:30:14.293 回答