Próbuję zaimplementować Breadcrumb Navigation na WebPage
, która wymienia zawartość Panel
przez ajax.Etykieta wicket nie jest aktualizowana/pozostaje niewidoczna
kończy się wyglądać jak ten: Home >> Page >> Panel
Oto mój kod strony:
public MyPage() {
super();
contentContainer = new WebMarkupContainer("contentContainer");
contentContainer.setOutputMarkupId(true);
add(contentContainer);
contentContainer.add(content = createContentPanel());
breadCrumbContainer = new WebMarkupContainer("breadcrumbContainer");
breadCrumbContainer.setOutputMarkupId(true);
add(breadCrumbContainer);
final AjaxLink panelLink = new AjaxLink("panelLink") {
@Override
public void onClick(final AjaxRequestTarget target) {
replaceContentPanel(getOverviewPanel(), target);
}
@Override
public boolean isVisible() {
return !(content instanceof OverviewPanel);
}
};
breadCrumbContainer.add(panelLink);
panelLink.add(new Label("panelLabel", new Model<String>() {
@Override
public String getObject() {
//some dynamic content for example:
return contentPanel.getClass().getName();
}
}));
}
public void replaceContentPanel(final Component replacer, final AjaxRequestTarget target) {
content.replaceWith(replacer);
content = replacer;
if (target != null) {
target.add(contentContainer);
target.add(breadCrumbContainer);
}
}
Home Page Label
i są łatwe. Ta dla Panelu musi być aktualizowana za każdym razem, gdy aktualizuję zawartość Panel
z. Byłem pewien, że linia target.add(breadCrumbContainer);
zrobi to. Jednak jest pusty. Etykieta nic nie pokazuje.
Miałem nadzieję znaleźć odpowiedź - co jest chyba oczywiste - podczas pisania pytania, ale wciąż mi się wymyka, więc mam nadzieję, że ktoś zauważy mój błąd.
Zastanawiam się, dlaczego nie skorzystać z komponentów bułki breadcrumb. Sprawdź przykład na stronie wicketstuff: http://wicketstuff.org/wicket/breadcrumb/ – magomi
To jest dobry pomysł, zajrzę w to. Zastanawiam się jednak, dlaczego etykieta się nie wyświetla? – Yashima