我创建了一个示例gxt小部件,显示来自db的记录列表。
当我点击刷新按钮时,我希望网格数据重新加载,好吧它没有,所以我想我可以只添加一个事件监听器然后手动调用grid.getStore().getLoader().load()
问题是,我该如何访问工具栏上的“刷新”图标或按钮,以便我可以附加事件。
请参阅附件中我想要处理的刷新图标和下面的代码段:
private PagingToolBar toolBar;
private NumberFormat currency;
private PagingLoader<PagingLoadResult<ModelData>> loader;
private PagingModelMemoryProxy proxy;
private ListStore<PlayerDTO> store;
proxy = new PagingModelMemoryProxy(null);
loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy);
loader.setRemoteSort(true);
store = new ListStore<PlayerDTO>(loader);
toolBar = new PagingToolBar(10);
toolBar.bind(loader);
loader.load(0, 10);
这是我从rpc回调加载代理的方式
final AsyncCallback<List<PlayerDTO>> getPlayersCallback = new
AsyncCallback<List<PlayerDTO>>() {
public void onFailure(Throwable arg0) {
arg0.printStackTrace();
}
public void onSuccess(List<PlayerDTO> arg0) {
proxy.setData(arg0) ;
loader.load(0, 10);
}
};
service.getPlayers(getPlayersCallback);
感谢您的时间,
Babajide Prince。
答案 0 :(得分:0)
刷新按钮已经调用了loader.load(),所以如果一个不起作用,另一个也不会。由于您使用的是PagingModelMemoryProxy
,我猜你想要做的不仅仅是loader.load(),因为loader.load()只是在谈论本地数据而不是往返打电话给真正的服务器。这就是你的意思吗?
我的猜测是你实际上并不想与内存代理通信,而是在刷新的情况下与服务器通信,所以loader.load()仍然不会给你什么。
刷新图标是PagingToolbar
中的受保护字段 - 这意味着您可以对窗口小部件进行子类化,并在onRender
左右,添加另一个侦听器来连接您的特定行为而不是loader.load ()调用将替换您正在使用的内存中代理中的数据。
答案 1 :(得分:0)
PagingToolBar
有刷新按钮。点击
刷新按钮代理将加载数据。