所以我有我的
公共类MyClass扩展了WebPage {
static AjaxFallbackLink ddd = null;
static AjaxFallbackLink dddd = null;
(...) }
在构造函数中我有:
ddd = new AjaxFallbackLink(“previous”){
@Override
public void onClick(AjaxRequestTarget target) {
//
}
};
ddd.setOutputMarkupId(true);
ddd.setOutputMarkupPlaceholderTag(true);
ddd.setVisible(false);
add(ddd);
现在我想创建一个方法来改变这个项目的可见性。 但是,调用ddd.setVisible(true);在这种方法中不起作用。
任何解决方案?
答案 0 :(得分:4)
像这样创建你的链接adn设置条件应该在onConfigure()
方法中可见:
AjaxLink myLink = new AjaxLink("myLink") {
@Override
public void onClick(AjaxRequestTarget target) {
//click stuff done here
}
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(hereTheVisibleCondition);
}
};
这样,只要链接得到渲染,它就会变得可见或不依赖于条件。
答案 1 :(得分:1)
您已接近实施,但要进行更新,您必须致电target.add(myLink);
以获取myLink
的ajax刷新(在早期版本的Wicket中为target.addComponent()
)。
要使用方法更改可见性,您必须传递AjaxRequestTarget
。在onClick
或AjaxButton
的{{1}}方法中,您可以调用以下方法:
AjaxLink
希望有所帮助!