我有一個ScrollTable
,它是動態填充的。 (行和列在飛行中計算並填充數據)。我的ScrollTable
支持水平和垂直滾動。當我有很多列並且水平滾動查看數據時,我看到在呈現Header
& DataTables
的方式中存在未對齊。我懷疑GWT渲染髮生緩慢,這是造成這個問題。GWT ScrollTable問題:使用水平滾動時,滾動表的標題和數據表格不對齊
這裏去代碼:
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
得到正確對齊。但是,如果以編程方式完成這可能是一個性能問題。 如果我們導航到其他瀏覽器選項卡並返回,則看不到問題。
附加信息:
- 我已經嘗試運行使用GWT CSS爲
ScrollTable
插件的上面的代碼,並使用我的自定義CSS。 - 在重新繪製
ScrollTable
之前,已嘗試使用DeferredCommand
。 上述情況並未產生任何結果。
我的應用程序使用GWT 2.0.4。