【问题标题】:Refresh data in Wicket DataView在 Wicket DataView 中刷新数据
【发布时间】:2014-11-27 09:17:42
【问题描述】:

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

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

【问题讨论】:

    标签: wicket


    【解决方案1】:

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

    例如

    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
    
    }
    

    【讨论】:

    • 您能帮我更新 DataProvider 吗?我没有看到任何方法。只是在 DataView 对象中有 getDataProvider,没有 setter。
    • 您必须在您的 DataProvider 中创建方法。我的示例中的setSelectedItem 不存在;你必须创建它。
    • 别忘了size() 方法!
    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2011-11-13
    相关资源
    最近更新 更多