我有一个 AjaxTabbedPanel,每个选项卡都可能包含无效的内容。我想通过使用红色背景突出显示有错误的选项卡向用户表明这一点。
作为一个实验,我实现了选项卡式面板的newLink()
方法,正如您所见,该onClick()
方法遍历父面板的所有选项卡链接并附加一个 CSS 类属性值以呈现红色背景。
但是我的标签都没有被突出显示。
我找不到这样做的相关示例,但可能有人做过类似的事情,并且可以提供一些建议。
@SuppressWarnings("unchecked")
@Override
protected WebMarkupContainer newLink(String linkId, final int index)
{
return new IndicatingAjaxFallbackLink(linkId)
{
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target)
{
setSelectedTab(index);
if (target != null)
{
target.add(IndicatingAjaxTabbedPanel.this);
int tabIndex = 0;
for (ITab tab : (List<ITab>)getTabs()) {
Component link = IndicatingAjaxTabbedPanel.this.get("tabs-container:tabs:" + tabIndex++ + ":link");
if (link != null) {
link.add(AttributeAppender.append("class", "invalidValue"));
target.add(link);
}
}
}
}
};
}