0

我创建了一个示例 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);

谢谢你的时间,

巴巴吉德王子。

4

2 回答 2

0

刷新按钮已经调用了 loader.load(),所以如果一个不起作用,另一个也不会。由于您使用的是 a PagingModelMemoryProxy,我猜您想要做的不仅仅是 loader.load(),因为 loader.load() 只是与本地数据通信,而不是对真实服务器进行往返调用. 这就是你的意思吗?

我的猜测是,您实际上并不想与内存代理交谈,而是在刷新时与服务器交谈,因此 loader.load() 仍然不会给您任何信息。

刷新图标是一个受保护的字段PagingToolbar- 这意味着您可以子类化小部件,并在其中onRender添加另一个侦听器来连接您的特定行为,而不是 loader.load() 调用,它将替换内存中的数据您正在使用的代理。

于 2013-05-23T00:48:00.467 回答
0

PagingToolBar有刷新按钮。单击刷新按钮代理将加载数据。

于 2013-05-23T08:12:39.417 回答