我目前正在嘗試創建一個DataGrid,它可以將具有值列表的實體作爲一行。列表中的每個值都在DataGrid的自己的列中。實體的值列表可能具有不同的大小,因此DataGrid將具有可變數量的列。我注意到,當我嘗試創建DataGrid並循環將每個列添加到DataGrid的過程時,添加列所需的時間不會線性增長。如何快速添加許多列到GWT DataGrid
這裏是我用測試添加的列
DataGrid<String> table = new DataGrid<String>();
table.setPageSize(25);
int NUM_COLUMNS = 40;
for (int i = 0; i < NUM_COLUMNS; i++) {
GWT.log("Adding column "+i);
TextColumn<String> nameColumn = new TextColumn<String>() {
public String getValue(String object) {
return object;
}
};
table.addColumn(nameColumn, "Column " + i);
table.setColumnWidth(nameColumn, 100, Unit.PX);
}
ArrayList<String> data = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
data.add("row "+i);
}
table.setRowCount(data.size(), true);
table.setRowData(0, data);
table.setWidth("100");
的速度代碼這花費約48秒,給予或採取1秒,每我跑它的時間。似乎加載少於10列的速度相當快,但隨着列數的增加,加載它的時間呈指數級增長。
是否有另一種方法可以更快地將列添加到DataGrid?提前致謝。
這就是我所害怕的。專欄是必要的,大部分時間將不到15,但有幾個有幾十個。我最後設置了DataGrid的行數據,就像上面所示,所以我想我將不得不嘗試找到處理列的創造性方式。無論如何,謝謝你。希望別人可能有一個想法。 – user1076377 2011-12-17 00:03:21