我的页面上有DropDownChoice和DataView。 DataView应根据DropDownChoice中选择的项目显示数据。我怎样才能做到这一点?
感谢PropertyModel,我可以用一种非常简单的方式更改标签文本。 DataView有什么方法吗?不是真的在寻找ajax刷新。非常感谢提前
答案 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
}