刷新Wicket数据视图中的数据
我的页面上有DropDownChoice和DataView。DataView应根据在DropDownChoice中选择的项目显示数据。我怎样才能做到这一点刷新Wicket数据视图中的数据,wicket,Wicket,我的页面上有DropDownChoice和DataView。DataView应根据在DropDownChoice中选择的项目显示数据。我怎样才能做到这一点 多亏了PropertyModel,我可以用一种非常简单的方式更改标签的文本。DataView有som方法吗?不是真的在寻找ajax刷新。非常感谢您的DataView使用DataProvider获取要显示的值。如果将数据视图(或其父级)添加到AjaxRequestTarget中,它将从数据提供程序中重新提取值。您只需确保更改下拉选择中的选择将更
多亏了PropertyModel,我可以用一种非常简单的方式更改标签的文本。DataView有som方法吗?不是真的在寻找ajax刷新。非常感谢您的
DataView
使用DataProvider
获取要显示的值。如果将数据视图
(或其父级)添加到AjaxRequestTarget
中,它将从数据提供程序
中重新提取值。您只需确保更改下拉选择中的选择将更新数据提供程序
例如
更新
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
}
MyDataProvider{
私有SomeObject selectedItem;
@凌驾
公共迭代器是否可以帮助我更新数据提供程序?我看不到任何方法。只需在DataView对象中使用getDataProvider,而不使用setter。您必须在数据提供程序中创建该方法。我的示例中的setSelectedItem
不存在;您必须创建它。不要忘记size()
方法!
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
}