gwt 2.4 DataGrid - 自动设置列宽?

时间:2011-10-10 13:07:41

标签: gwt datagrid width

我在gwt 2.4中遇到DataGrid问题。我用CellTable做了表,一切都很好。但我需要修复标头,然后用DataGrid替换CellTable。我有.css文件的问题,但已经解决了。

现在,问题是每一列都有固定的宽度,而且表格的每一行都只是在屏幕的可见部分。

这是新旧屏幕截图,使事情更清晰:)

http://img832.imageshack.us/img832/5026/oldscreenshot.jpg

http://img834.imageshack.us/img834/1489/newscreenshot.jpg

有人可以帮助老看,但有固定标题。

3 个答案:

答案 0 :(得分:5)

您可以为数据网格的每一列设置固定宽度:

dataGrid.setColumnWidth(sampleColumn, 40, Unit.PX);

并展开总数据网格宽度:

dataGrid.setWidth("100%"); // choose the most useful in your app
dataGrid.setWidth("1400px");

答案 1 :(得分:2)

我不确定答案是什么,但我不认为以前的答复者理解这个问题。 基本上,您希望dataGrid使用“table-layout:auto”而不是“fixed”。这就是cellTable的作用。表列根据内容自动调整大小。 对于内容表来说这很容易,但是为了得到header-freeze,dataGrid正在为标题使用单独的div / table。因此,需要根据数据表显式调整头表的列。它们还需要在表更改时调整大小(浏览器调整大小等)。我打算在dataGrid上添加可调整大小的cols,所以我很快就会遇到同样的挑战,如果有人还在跟踪这个帖子,我会更新一些...

答案 2 :(得分:0)

需要使用内部div将您的内容包装在您的td中。并确保overflow-x设置为隐藏。

table {
     overflow: hidden;
     white-space: nowrap;
     table-layout: fixed;
}

td div{
   overflow-x:hidden;
}