AjaxLink 切换另一个 AjaxLink 的可见性
AjaxLink toggle the visibility of another AjaxLink
我有两个 AjaxLink(都在同一个容器下),我想切换它们的可见性,这样如果单击 linkA
,linkA
隐藏,linkB
可见,反之亦然。
下面是我实现的linkA
:
linkA= new AjaxLink<Void>( "linkA" )
{
@Override
public void onConfigure()
{
setVisible( showLinkA);
linkB.setVisible( showLinkB);
}
@Override
public void onClick( AjaxRequestTarget target )
{
if ( condition_met )
{
setResponsePage( NextPage.class, getParameters() );
}
else
{
showLinkB= true;
showLinkA= false;
target.add( linkA, linkB);
}
}
};
隐藏部分起作用,即当单击 linkB
时,linkB
被隐藏。然而,当 linkA
被点击时,linkA
被隐藏并且 linkB
不再可见。我错过了什么吗?
由于您使用 Ajax 并隐藏和显示组件,因此您需要对它们使用 setOutputMarkupPlaceholderTag(true)
。没有这个 "show" 就找不到它们,你的 JS 日志中一定有错误。
我有两个 AjaxLink(都在同一个容器下),我想切换它们的可见性,这样如果单击 linkA
,linkA
隐藏,linkB
可见,反之亦然。
下面是我实现的linkA
:
linkA= new AjaxLink<Void>( "linkA" )
{
@Override
public void onConfigure()
{
setVisible( showLinkA);
linkB.setVisible( showLinkB);
}
@Override
public void onClick( AjaxRequestTarget target )
{
if ( condition_met )
{
setResponsePage( NextPage.class, getParameters() );
}
else
{
showLinkB= true;
showLinkA= false;
target.add( linkA, linkB);
}
}
};
隐藏部分起作用,即当单击 linkB
时,linkB
被隐藏。然而,当 linkA
被点击时,linkA
被隐藏并且 linkB
不再可见。我错过了什么吗?
由于您使用 Ajax 并隐藏和显示组件,因此您需要对它们使用 setOutputMarkupPlaceholderTag(true)
。没有这个 "show" 就找不到它们,你的 JS 日志中一定有错误。