GWT ScrollTable问题:使用水平滚动时,ScrollTable的标题和数据表未对齐

时间:2013-10-18 06:31:51

标签: gwt gwt2

我有一个动态填充的ScrollTable。 (行和列在飞行中计算并填充数据)。我的ScrollTable支持横向和纵向滚动。当我有很多列并且我水平滚动查看数据时,我发现Header&的方式不对齐DataTables已呈现。我怀疑GWT呈现缓慢发生并导致问题。

以下是代码:

public class TestScrollTable implements EntryPoint {

    public FixedWidthGrid dataTable = new FixedWidthGrid(200,20);   
    public FixedWidthFlexTable headerTable = new FixedWidthFlexTable();
    public ScrollTable table = new ScrollTable(dataTable, headerTable);

    @Override
    public void onModuleLoad() {

        table.setColumnResizePolicy(ColumnResizePolicy.SINGLE_CELL);
        table.setResizePolicy(ResizePolicy.UNCONSTRAINED);
        table.setScrollPolicy(ScrollPolicy.BOTH);
        table.setSortPolicy(SortPolicy.SINGLE_CELL);
        RootPanel.get().add(table);

        for (int i = 0; i < 20; i++) {
            headerTable.setHTML(0, i, "Header " + i);
        }

        for (int i = 0; i < 200; i++) {
            for (int j = 0; j < 20; j++) {
                final int row = i;
                final int column = j;                         
                dataTable.setHTML(row, column, "Cell " + row + ":" + column);
            }
        }
        table.redraw();
    }

}

并不总是看到这个问题。当我们运行上面的代码并通过远程桌面使用Web应用程序时,有时会看到应用程序的部署版本(当我有很多列时,我需要水平滚动)。已经处理了数据的分页和排序。

我有以下解决方案作为解决方法:

当我调整标题表的大小时,整个ScrollTable会正确对齐。但是,如果以编程方式完成,则可能是性能问题。 如果我们导航到其他浏览器选项卡并返回,则不会出现此问题。

其他信息:

  1. 我尝试使用GWT css为ScrollTable小部件运行上述代码并使用我的自定义CSS。
  2. 在重新绘制DeferredCommand之前尝试使用ScrollTable。 上述情况未产生任何结果。
  3. 我的应用程序使用GWT 2.0.4。

1 个答案:

答案 0 :(得分:0)

FixedWidthGridFixedWidthFlexTableScrollTable不是GWT库的小部件,我想您的应用程序正在使用gwt-incubator,这是一个不久前用过的小工具来玩小部件在它们被整合到GWT之前的新事物。

现代GWT版本包括改进的表格小部件,如CellTable,但没有这个问题。我鼓励你将你的应用程序迁移到最后一个gwt,因为两者:几年前gwt-2.0.4已经发布,并且没有维护gwt-incubator,所以很难找到他们的支持,我知道迁移可能很难任务,但我认为这是值得的。请查看gwt邮件列表中的thread