GXT - 如何通过单击PagingToolbar上的Refresh来刷新网格数据

时间:2013-05-22 20:59:44

标签: java gwt gxt

我创建了一个示例gxt小部件,显示来自db的记录列表。

当我点击刷新按钮时,我希望网格数据重新加载,好吧它没有,所以我想我可以只添加一个事件监听器然后手动调用grid.getStore().getLoader().load()问题是,我该如何访问工具栏上的“刷新”图标或按钮,以便我可以附加事件。

请参阅附件中我想要处理的刷新图标和下面的代码段:enter image description here

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。

2 个答案:

答案 0 :(得分:0)

刷新按钮已经调用了loader.load(),所以如果一个不起作用,另一个也不会。由于您使用的是PagingModelMemoryProxy,我猜你想要做的不仅仅是loader.load(),因为loader.load()只是在谈论本地数据而不是往返打电话给真正的服务器。这就是你的意思吗?

我的猜测是你实际上并不想与内存代理通信,而是在刷新的情况下与服务器通信,所以loader.load()仍然不会给你什么。

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

答案 1 :(得分:0)

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