2011-04-26 50 views
0

我想使用RPC调用从服务器 - >数据库中获取数据,然后填充我的客户端小部件,如列表框,网格等。问题是,由于调用是异步的,它不能保证客户端运行时将等待服务器调用返回,然后使用回调结果中的数据填充小部件。有没有办法做到这一点?远程实现GWT列表框

问候, Ĵ

回答

0

在设计上,有没有办法让在GWT同步请求。但是,您可以避免显示小部件(也可能显示微调),直到数据从服务器返回。一种方法是在从服务器获取数据时使用的AsyncCallback中调用的方法中显示小部件。

下面是一个例子(实际上,您可能会在表单级别执行此操作,而不是小部件级别,但您会明白)。

AsyncCallback<List<Option>> callback = new AsyncCallback<List<Option>>() { 
    public void onFailure(Throwable caught) { 
    processError(caught); 
    } 

    public void onSuccess(List<Option> result) { 
    updateListBox(result); 
    showListBox(); 
    } 
}; 
myRemoteService.getOptions(callback); 
0

您可以显示一个模式对话框(包含“获取数据”的消息,或任何票友),当你开始获取数据,然后当你的RPC调用终止你可以关闭对话框。另一种方法是使用一个小的加载面板,根据需要激活/禁用:示例为here