gpt4 book ai didi

java - 如何使用 AjaxLink 更新 Wicket-Listview?

转载 作者:行者123 更新时间:2023-12-01 07:37:48 24 4
gpt4 key购买 nike

我想通过 Ajax 链接用 NewsEntries 更新我的 ListView。我有每个月的链接,点击后我想显示特定月份的新闻。

我尝试了这个教程,但它不起作用: http://blog.xebia.com/2008/06/04/wicket-updating-listviews-using-an-ajaxlink/

这是我的代码示例:

    add(new Label("title", "News Archive"));

List<NewsEntry> newsEntries = new ArrayList<NewsEntry>();

final ListView<NewsEntry> listview = new ListView<NewsEntry>(
"newsItem", newsEntries)
{
private static final long serialVersionUID = -4294698878214798680L;

@Override
protected void populateItem(final ListItem<NewsEntry> item)
{
Link<Void> link = new Link<Void>("newsItemLinkID")
{
private static final long serialVersionUID = 6176760893378172041L;

@Override
public void onClick()
{
setResponsePage(getPage());
}
};

link.add(new Label("newsItemLinkName", item.getModelObject()
.getHeadline()));
link.setOutputMarkupId(true);
item.add(link);
}
};
listview.setOutputMarkupId(true);
add(listview);

add(new AjaxLink<Object>("march")
{
private static final long serialVersionUID = 974013580329804810L;

@Override
public void onClick(AjaxRequestTarget target)
{
NewsDAO news = new NewsDAO();
listview.setList(news.getNewsFromMonth(MONTH.MARCH));
target.addChildren(listview, Link.class);
}
});

此时,不会显示任何内容。我没有收到任何错误,无论是在 ajax-debug 窗口中,还是在我的 Eclipse 控制台中。我现在有点陷入困境,不知道出了什么问题。

最佳答案

您应该将 ListView 包装到 WebMarkupContainer 中并更新此容器而不是 ListView。

WebMarkupContainer wmc = new WebMarkupContainer("listWmc");
add(wmc);

// init your listView
// ...

wmc.add(listView);

关于java - 如何使用 AjaxLink 更新 Wicket-Listview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com