我设法弄到这是怎么回事,这里是我做过什么:
首先我定义了我的数据代理和装载机与寻呼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);
}
这里的关键是用相同的加载程序重新创建商店,列模型是预先创建的并且被重用。