将行添加到refreshView而不重新绘制整个refreshView

时间:2012-09-05 13:23:40

标签: wicket

我们设置了一个refreshingView<shirt>(包含在边框内),在刷新视图之外我们有一个ajaxLink,它将一个新的衬衫对象添加到支持refreshView的列表中。 refreshView包含textFields和dropdown,供用户输入有关衬衫的信息。

在ajaxLink中,我们在列表中添加一个衬衫,然后将整个边框添加到ajaxLink的目标,从而刷新边框。添加行并填写信息(衬衫颜色,大小,样式等)并添加另一件衬衫时会出现问题。添加了另一排新衬衫,但同时输入的关于第一件衬衫的所有信息都丢失了。

有关如何保留以前输入的衬衫信息的任何想法?

1 个答案:

答案 0 :(得分:5)

以前的数据会丢失,因为refreshView会在每次渲染后丢弃所有项目(以及包含数据的模型)。

您可以设置ItemReuseStrategy:

refreshingView.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());

另一种更复杂的方法是仅重绘新添加的行。请在此处查看答案:Can I add an element to a RepeatingView without refreshing the latter?