在Wicket DataView中刷新数据

时间:2014-11-27 09:17:43

标签: wicket

我的页面上有DropDownChoice和DataView。 DataView应根据DropDownChoice中选择的项目显示数据。我怎样才能做到这一点?

感谢PropertyModel,我可以用一种非常简单的方式更改标签文本。 DataView有什么方法吗?不是真的在寻找ajax刷新。非常感谢提前

1 个答案:

答案 0 :(得分:3)

您的DataView使用DataProvider获取要显示的值。如果您将DataView(或其父级)添加到AjaxRequestTarget,则会从DataProvider重新获取值。您只需确保更改DropDownChoice中的选择即会更新DataProvider

E.g。

dropDown.add(new AjaxFormComponentUpdatingBehavior("onchange") {

    @Override
    protected void onUpdate(AjaxRequestTarget target) {
        dataProvider.setSelectedItem(dropDownModel.getObject());
        target.add(dataView); //o dataView's parent
    }
});

<强>更新

MyDataProvider {

private SomeObject selectedItem;

@Override
public Iterator<? extends SomeOtherObject> iterator(long first, long count) { 
    return this.service.findAllForItem(this.selectedItem).iterator();
}

//+size + setter for selectedItem

}