2

这是 GWT 中经典的“等待 rpc 调用问题”的变体。

我在 GWT 中完成了一个完整的 CRUD 屏幕,调用 RPC 来攻击 Oracle 数据库。它有一个用于搜索条件和结果表的面板,另一个用于详细信息字段。我根据需要交换两者的可见性。

结果表是一个 CellTable,我调用“setVisibleRangeAndClearData”方法来填充表,该表负责分页、列排序等(例如,当我从更新 RPC 调用返回时,我保持我来的范围从)。

我曾经通过将“后代码”放在 RPC 调用的“onSuccess”块中(即交换面板)来进行“同步”,但是当调用“setVisibleRangeAndClearData”时,cellTable 本身会启动另一个 RPC 调用以获取新的我无法控制的数据。所以,发生的事情是我交换了面板(这是立即的),然后用户看到表数据更新,这很难看。

所以问题是:我该如何控制它?当“setVisibleRangeAndClearData”完成时,我如何等待或被调用?

提前致谢,

大卫

4

1 回答 1

2
  1. 立即显示表格然后用数据填充它并不难看 - 事实上,从 UI 角度来看,这是正确的解决方案。用户期望他们的操作立即产生结果,并在按下按钮后立即向他们显示加载指示器是正确的方法。

  2. CellTable 有两种您可能会觉得有用的方法:

setLoadingIndicator() - 你的表格应该显示它,直到数据到达;

onLoadingStatusChange()。

于 2012-10-25T17:10:19.170 回答