我想通过Ajax-Link用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);
}
});
Run Code Online (Sandbox Code Playgroud)
目前,不会显示任何内容.我没有错误,无论是在ajax-debug窗口,还是在我的eclipse控制台中.我现在有点卡住了,不知道什么是错的.
您应该将ListView包装到WebMarkupContainer中并更新此Container而不是ListView.
WebMarkupContainer wmc = new WebMarkupContainer("listWmc");
add(wmc);
// init your listView
// ...
wmc.add(listView);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4858 次 |
| 最近记录: |