翻页控件的一个BUG

使用DataGrid的翻页控件发现一个BUG。当我挂载了DataLoader的PreLoad的方法。我在有数据没保存的时候下使用了event.preventLoad();阻止了翻页。这个时候页面是正常的,确实没有翻页,但是我保存了数据再点翻页的时候就会直接翻到第三页。也就是说,一开始在第一页,点翻页被阻止了,界面显示在第一页,但是再点一次翻页应该到第二页,但是直接到了第三页去了。

使用 BeforeRefreshEvent 事件试试, 参考:

Event that is fired before refreshing the datasource when the user clicks next, previous, etc. You can prevent the datasource refresh by invoking preventRefresh(), for example:
 
 table.getRowsCount().addBeforeDatasourceRefreshListener(event -> {
     if (event.getDatasource().isModified()) {
         showNotification("Save changes before going to another page");
         event.preventRefresh();
     }
 });

我不是只控制翻页,我是需要在各种数据加载之前进行数据没保存的提示,这明显是个bug,点一下翻页直接翻两页。

上面的方法能不能满足功能需求?

这应该不算Bug, 框架只是根据 PreLoadEvent 的结果确定是否去加载数据。没有文档说可以使用这个事件来阻止翻页。 RowsCount 组件文档中描述了如何阻止翻页。这是一个用法问题,并不是 Bug

我想你搞错了,我没有用这个事件去阻止翻页。我只是用这个事件阻止DL的加载,这个是这个事件合理的设计对吗?然后我告诉你们结果点翻页的时候发生了,点一下翻2页的问题。如果这都不是BUG,那当我白说咯。

翻页的阻止不是我的用意,而是CUBA自己的行为。但是这个行为确非常搞笑,看上去阻止了,结果第二次点又翻了2页.

从这方面考虑确实是个问题,我们会给Core Team 反馈此问题。