我設法弄到這是怎麼回事,這裏是我做過什麼:
首先我定義了我的數據代理和裝載機與尋呼toolbat一起:
private PagingModelMemoryProxy proxy;
private PagingLoader<PagingLoadResult<ModelData>> loader;
private PagingToolBar toolBar;
接下來是每個創作一個用一個空ArrayList進行初始化。
proxy = new PagingModelMemoryProxy(new ArrayList<EquipmentModel>());
loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy);
loader.setRemoteSort(true);
toolBar = new PagingToolBar(100);
toolBar.bind(loader);
loader.load(0, 100);
最後,我在我的視圖中設置了一個方法,當AJAX調用完成時調用,但您可以在任何地方觸發它。這裏是我的整套方法,Equipment and EquipmentModel分別是我的數據庫和視圖模型。
public void setEquipmentData(List<Equipment> data)
{
Collections.sort(data);
// build a list of models to be loaded
List<EquipmentModel> models = new ArrayList<EquipmentModel>();
for (Equipment equipment : data)
{
EquipmentModel model = new EquipmentModel(equipment);
models.add(model);
}
// load the list of models into the proxy and reconfigure the grid to
// refresh display.
proxy.setData(models);
ListStore<EquipmentModel> equipmentStore = new ListStore<EquipmentModel>(loader);
equipmentGrid.reconfigure(equipmentStore, equipmentColumnModel);
loader.load(0, 100);
}
這裏的關鍵是用相同的加載程序重新創建商店,列模型是預先創建的並且被重用。