在我的应用程序中,我使用DefaultDataTable和SortableDataProvider,它具有LoadableDetachableModel作为模型。
我用它来显示一组记录(比如 RecordList 页面)。当我添加或删除某些记录并再次加载页面 RecordList 时,它会显示更改。但是,如果我使用浏览器的后退按钮并转到之前已删除的 RecordList 页面(在添加/删除记录之前)。 DefaultDataTable仍然具有旧的记录集。删除记录时,这是一个大问题。
例如,如果我删除记录并按回按钮,则页面会失败,因为它尝试显示的记录在数据库中不存在。添加不会产生问题,因为它根本没有列在记录集中。
在另一个页面中,我只有PageableListView和LoadableDetachableModel。它可以解决问题。
答案 0 :(得分:1)
你可以做一两件事。
首先请检查数据提供者是否有最新数据。
其次,确保在按下浏览器后退按钮时刷新带有数据提供者的记录集。确保提供给数据提供程序的数据在构造函数以外的方法中刷新。因为当你回击时不会调用构造函数。所以你需要使用一个单独的方法。理想情况下,您可以使用相同的方法,但是从构造函数和按下后退按钮时调用。