Wicket DefaultDataTable - 在浏览器后退按钮上刷新它

时间:2013-03-25 14:46:59

标签: wicket wicket-1.5 wicketstuff

在我的应用程序中,我使用DefaultDataTable和SortableDataProvider,它具有LoadableDetachableModel作为模型。

我用它来显示一组记录(比如 RecordList 页面)。当我添加或删除某些记录并再次加载页面 RecordList 时,它会显示更改。但是,如果我使用浏览器的后退按钮并转到之前已删除的 RecordList 页面(在添加/删除记录之前)。 DefaultDataTable仍然具有旧的记录集。删除记录时,这是一个大问题。

例如,如果我删除记录并按回按钮,则页面会失败,因为它尝试显示的记录在数据库中不存在。添加不会产生问题,因为它根本没有列在记录集中。

在另一个页面中,我只有PageableListView和LoadableDetachableModel。它可以解决问题。

1 个答案:

答案 0 :(得分:1)

你可以做一两件事。

首先请检查数据提供者是否有最新数据。

其次,确保在按下浏览器后退按钮时刷新带有数据提供者的记录集。确保提供给数据提供程序的数据在构造函数以外的方法中刷新。因为当你回击时不会调用构造函数。所以你需要使用一个单独的方法。理想情况下,您可以使用相同的方法,但是从构造函数和按下后退按钮时调用。