2012-10-25 59 views
2

這是GWT中經典的「等待rpc調用問題」的變體。GWT等待setVisibleRangeAndClearData完成

我已經在GWT中完成了一個完整的CRUD屏幕,調用RPC來查找Oracle數據庫。它有一個面板用於搜索條件和結果表格,其他用於詳細字段。我根據需要調換兩者的可見性。

結果表是一個CellTable,我稱之爲「setVisibleRangeAndClearData」方法來獲取表填充,這照顧分頁,列排序等(例如,當我從更新RPC調用回來我保持我來自的範圍)。

我使用通過在RPC調用的「onSuccess」塊中放置「後代碼」(即交換面板)來製作「同步」,但是當調用「setVisibleRangeAndClearData」時,cellTable自己啓動另一個RPC打電話來獲取我無法控制的新數據。所以,發生什麼事是我交換面板(這是立即),然後,用戶看到表格數據更新,這是醜陋的。

所以問題是:我該如何控制它?如何在「setVisibleRangeAndClearData」爲finisehd時等待或調用?

由於提前,

大衛

回答

2
  1. 顯示錶馬上,然後用數據填充它不是醜陋的 - 事實上,它是從UI角度合適的解決方案。用戶期望他們的行爲立即得到結果,並在他們按下按鈕後立即向他們顯示加載指示符是正確的方法。

  2. CellTable有兩個方法可能對你有用:

setLoadingIndicator() - 直到數據到達你的表應該顯示它;

onLoadingStatusChange()。