当单元格中有长文本时,GWT CellTable #setColumnWidth()不起作用

时间:2012-06-21 09:50:40

标签: gwt gwt-celltable

作者建议来自this link

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();
            }
        };

1 个答案:

答案 0 :(得分:0)

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

nameColumn.setCellStyleNames("name-cell");

为单元格生成以下结构(在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活页夹构建的表

  • 创建列

  • 设置表格宽度

  • 向表中添加列

  • 设置列宽(使用table.setColumnWidth

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

使用GWT 2.4