如何使GWT中的ScrollPanel中的CellTable标题始终位于顶部

时间:2015-06-18 08:29:18

标签: gwt

这是我的代码。

VerticalPanel mainPanel = new VerticalPanel();
HorizontalPanel cellTablePanel = new HorizontalPanel();
ScrollPanel scrollPanel = new ScrollPanel();
CellTable table = new CellTable();

scrollPanel.add(table);
cellTablePanel.add(scrollPanel);
mainPanel.add(cellTablePanel);

我希望表的标题永久位于顶部,数据可滚动。现在,当我向下滚动表格时,标题也会向下滚动,我无法看到标题。当我再次向后滚动时,我才能看到标题。那么有什么方法可以让我修复标题。

注意:我必须只使用CellTable。我不能使用任何其他小部件。

2 个答案:

答案 0 :(得分:0)

如果你不能使用DataGrid,你可以把它放在一个DockPanel中,HTML代表你的标题。它将是不可调整大小且不可排序的。我做了一个CellList,因为我没有使用CellTables(不适合移动设备)。但是在那时你正在创建一个自定义小部件(Composite),所以你也可以像其他人建议的那样将它重构为DataGrid。经历一次重构痛苦,永远享受清洁设计。

答案 1 :(得分:0)

请花一点时间阅读SO answer

您可以使用Window.addWindowScrollHandler()执行相同的操作。实现相同的逻辑,然后将列标题样式设置为固定位置。

这是一些伪代码:

get current header position
get current scroll position
if header is above current scroll then:
    set style to fix the header at the top
else:
    set style to regular position