Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT等待SetVisibleRange和ClearData完成_Java_Gwt_Synchronization_Rpc_Gwt Celltable - Fatal编程技术网

Java GWT等待SetVisibleRange和ClearData完成

Java GWT等待SetVisibleRange和ClearData完成,java,gwt,synchronization,rpc,gwt-celltable,Java,Gwt,Synchronization,Rpc,Gwt Celltable,这是GWT中经典的“等待rpc调用问题”的一个变体 我在GWT中完成了一个完整的CRUD屏幕,调用RPC访问Oracle数据库。它有一个面板用于搜索条件和结果表,另一个面板用于详细信息字段。我会根据需要交换两者的可视性 结果表是一个CellTable,我调用“setVisibleRangeAndClearData”方法来填充表,它负责分页、列排序等(例如,当我从更新RPC调用返回时,我保留我来自的范围) 我通常通过在RPC调用的“onSuccess”块中放入“after code”(即交换面板)

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

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

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

我通常通过在RPC调用的“onSuccess”块中放入“after code”(即交换面板)来进行“synchro”,但在调用“setVisibleRangeAndClearData”时,cellTable本身会启动另一个RPC调用以获取我无法控制的新数据。所以,我交换了面板(这是立即的),然后,用户看到表数据更新,这很难看

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

提前感谢,

大卫

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

  • CellTable有两种方法,您可能会发现它们很有用:

  • setLoadingIndicator()-您的表应该显示它,直到数据到达

    onLoadingStatusChange()