Ajax 当用户在Wicket中选择下拉选项时,如何更新面板?

Ajax 当用户在Wicket中选择下拉选项时,如何更新面板?,ajax,wicket,Ajax,Wicket,我想知道当我们选择一个下拉菜单chioce values时,如何更新面板,这是在onUpdate()方法中 我的自定义面板具有AjaxFallbackDefaultDataTable 下面是面板和下拉组件代码。当用户选择日期时,我想替换整个面板。目前我已经推荐了target.addComponent代码,但我想在这里实现它。有什么建议吗 List<DealHistory> dealHistoryList = ServicesCaller .getAllDeal

我想知道当我们选择一个下拉菜单chioce values时,如何更新面板,这是在onUpdate()方法中

我的自定义面板具有AjaxFallbackDefaultDataTable

下面是面板和下拉组件代码。当用户选择日期时,我想替换整个面板。目前我已经推荐了target.addComponent代码,但我想在这里实现它。有什么建议吗

List<DealHistory> dealHistoryList = ServicesCaller
            .getAllDealHistoryRecords();
    DealHistoryTablePanel dealHistoryTablePanel = new DealHistoryTablePanel(
            "deal_history_table_panel", dealHistoryList);
    dealHistoryTablePanel.setOutputMarkupId(true);

    add(dealHistoryTablePanel);

    IModel<List<? extends String>> dateChoices = new AbstractReadOnlyModel<List<? extends String>>() {
        @Override
        public List<String> getObject() {
            List<String> list = new ArrayList<String>();
            list.add("Last 3 months");
            list.add("Last 6 months");
            return list;
        }
    };

    final DropDownChoice<String> datesDropDown = new DropDownChoice<String>(
            "dates", new PropertyModel<String>(this, "selectedDate"),
            dateChoices);
    datesDropDown.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            //target.addComponent(dealHistoryTablePanel);
        }
    });
    add(datesDropDown);
List dealHistoryList=ServicesCaller
.getAllDealHistoryRecords();
DealHistoryTablePanel DealHistoryTablePanel=新建DealHistoryTablePanel(
“交易历史表面板”,交易历史列表);
dealHistoryTablePanel.setOutputMarkupId(true);
添加(dealHistoryTablePanel);

伊莫代尔你肯定走对了方向。实现这一目标的基本方法是

target.addComponent(dealHistoryTablePanel);
ajaxFormComponentUpdateingBehavior
中,它正好位于您的位置

您可能还希望更改
DealHistoryTablePanel
中的模型,方法可能是将其中包含的列表替换为通过对您的服务的不同调用获得的列表。要更明确地说,我必须查看
DealHistoryTablePanel
的代码


选择一个后显示更新一个
DropDownChoice
是很有指导意义的,当然它更新的组件是不同的。

我发现了问题,现在它按预期工作。但我发现导航栏上显示的信息和数字还有一个问题。当我第一次加载页面时,它显示“显示1到10/50”,现在我点击下一个箭头链接,它显示“显示11到20/50”。在这之后,我更改了我的下拉列表chioce,以从数据库中获取另一个列表。我希望我的表格应该显示“显示1到10/50”,但它会显示“显示11到20/50”(这是更改下拉列表之前的最后一条显示消息)。我该如何解决这个问题?@goutham:您正在使用的表机制中可能有一些分页数据需要在您更改列表时重置。发布您的DealHistoryTablePanel代码,我可能会提供帮助。我找到了解决方案。即调用table.setCurrentPage(0);下拉列表后的值更改。无论如何,谢谢你调查此事。我认为如果唐·罗比的回答对你有帮助的话,你应该接受。