将 CSS class 添加到选定的 Wicket 选项卡
Add CSS class to selected Wicket Tab
我有几个 Wicket 标签,我需要添加 CSS class "text-primary"到当前选择的标签
List<ITab> tabList = new ArrayList<>();
tabList.add(new AbstractTab(new Model<>("Tab 1")) {
@Override
public Panel getPanel(String panelId) {
return new TabPanel1(panelId);
}
});
tabList.add(new AbstractTab(new Model<>("Tab 2")) {
@Override
public Panel getPanel(String panelId) {
return new TabPanel2(panelId);
}
});
add(new AjaxTabbedPanel<>("tabs", tabList) {
@Override
protected WebMarkupContainer newLink(String linkId, int index) {
AjaxFallbackLink<Void> link = new AjaxFallbackLink<>(linkId) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(Optional<AjaxRequestTarget> target) {
TabbedPanel<ITab> selectedTab = setSelectedTab(index);
ITab tab = tabList.get(index);
if (target.isPresent()) {
tab.getPanel(linkId);
target.get().add(selectedTab);
}
onAjaxUpdate(target);
}
};
link.add(AttributeAppender.append("class", "text-primary"));
return link;
}
});
这是 Link
标记的样子
<a href="#" wicket:id="link"><span wicket:id="title">[[tab title]]</span></a>
此实现添加到两个选项卡 css class 我需要以某种方式检查是否选择了选项卡
您可以使用传递的参数 index
并将其与 selectedTab
:
进行比较
if (index == getSelectedTab()) {
link.add(AttributeAppender.append("class", "text-primary"));
}
也看看org.apache.wicket.extensions.markup.html.tabs.TabbedPanel#getSelectedTabCssClass()
我有几个 Wicket 标签,我需要添加 CSS class "text-primary"到当前选择的标签
List<ITab> tabList = new ArrayList<>();
tabList.add(new AbstractTab(new Model<>("Tab 1")) {
@Override
public Panel getPanel(String panelId) {
return new TabPanel1(panelId);
}
});
tabList.add(new AbstractTab(new Model<>("Tab 2")) {
@Override
public Panel getPanel(String panelId) {
return new TabPanel2(panelId);
}
});
add(new AjaxTabbedPanel<>("tabs", tabList) {
@Override
protected WebMarkupContainer newLink(String linkId, int index) {
AjaxFallbackLink<Void> link = new AjaxFallbackLink<>(linkId) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(Optional<AjaxRequestTarget> target) {
TabbedPanel<ITab> selectedTab = setSelectedTab(index);
ITab tab = tabList.get(index);
if (target.isPresent()) {
tab.getPanel(linkId);
target.get().add(selectedTab);
}
onAjaxUpdate(target);
}
};
link.add(AttributeAppender.append("class", "text-primary"));
return link;
}
});
这是 Link
标记的样子<a href="#" wicket:id="link"><span wicket:id="title">[[tab title]]</span></a>
此实现添加到两个选项卡 css class 我需要以某种方式检查是否选择了选项卡
您可以使用传递的参数 index
并将其与 selectedTab
:
if (index == getSelectedTab()) {
link.add(AttributeAppender.append("class", "text-primary"));
}
也看看org.apache.wicket.extensions.markup.html.tabs.TabbedPanel#getSelectedTabCssClass()