AppNav
Die AppNav
-Komponente in webforJ bietet ein flexibles und organisiertes seitliches Navigationsmenü mit Unterstützung für flache und hierarchische Strukturen. Jeder Eintrag ist ein AppNavItem
, das einen einfachen Link oder eine Gruppe mit untergeordneten Elementen darstellen kann. Elemente können mit internen Ansichten oder externen Ressourcen verknüpft werden und werden mit Symbolen, Abzeichen oder anderen Komponenten ergänzt.
Hinzufügen und Verschachteln von Elementen
AppNavItem
-Instanzen werden verwendet, um die AppNav
-Struktur zu füllen. Diese Elemente können einfache Links oder verschachtelte Gruppenkopfzeilen sein, die untergeordnete Elemente enthalten. Gruppenkopfzeilen ohne Links fungieren als erweiterbare Container.
Verwenden Sie addItem()
, um Elemente in die Navigation aufzunehmen:
AppNavItem dashboard = new AppNavItem("Dashboard", "/dashboard");
AppNavItem admin = new AppNavItem("Admin");
admin.addItem(new AppNavItem("Users", "/admin/users"));
admin.addItem(new AppNavItem("Settings", "/admin/settings"));
AppNav nav = new AppNav();
nav.addItem(dashboard);
nav.addItem(admin);
Oberste Elemente in einem Navigationsbaum sind in der Regel dazu gedacht, erweiterbar zu sein – nicht als klickbare Links. Das Festlegen eines path
für solche Elemente kann Benutzer verwirren, die erwarten, dass sie untergeordnete Elemente offenbaren, anstatt anderswohin zu navigieren.
Wenn Sie möchten, dass die Gruppenkopfzeile eine benutzerdefinierte Aktion auslöst (z. B. das Öffnen externer Dokumente), lassen Sie den Gruppenpfad leer und fügen Sie stattdessen eine interaktive Steuerung wie einen IconButton
zum Suffix des Elements hinzu. Dies hält die Benutzererfahrung konsistent und klar.
Code anzeigen
- Java
Verlinken von Elementen
Jedes AppNavItem
kann zu einer internen Ansicht oder einem externen Link navigieren. Sie können dies mit statischen Pfaden oder registrierten Ansichtsklassen definieren.
Statische Pfade
Verwenden Sie Zeichenfolgenpfade, um Links direkt zu definieren:
AppNavItem docs = new AppNavItem("Docs", "/docs");
AppNavItem help = new AppNavItem("Help", "https://support.example.com");
Registrierte Ansichten
Wenn Ihre Ansichten beim Router registriert sind, können Sie die Klasse anstelle einer fest codierten URL übergeben:
AppNavItem settings = new AppNavItem("Settings", SettingsView.class);
Wenn Ihre annotierte Route Routenparameter unterstützt, können Sie auch einen ParametersBag
übergeben:
ParametersBag params = ParametersBag.of("id=123");
AppNavItem advanced = new AppNavItem("User", UserView.class, params);
Mit Abfrageparametern
Übergeben Sie einen ParametersBag
, um Abfragezeichenfolgen einzuschließen:
ParametersBag params = ParametersBag.of("param1=value1¶m2=value2");
AppNavItem advanced = new AppNavItem("Advanced", SettingsView.class, params);
advanced.setQueryParameters(params);
Zielverhalten
Steuern Sie, wie Links geöffnet werden, indem Sie setTarget()
verwenden. Dies ist besonders nützlich für externe Links oder Popup-Ansichten.
SELF
(Standard): Öffnet in der aktuellen Ansicht.BLANK
: Öffnet in einem neuen Tab oder Fenster.PARENT
: Öffnet im übergeordneten Browsing-Kontext.TOP
: Öffnet im übergeordneten Browsing-Kontext.
AppNavItem help = new AppNavItem("Help", "https://support.example.com");
help.setTarget(AppNavItem.NavigationTarget.BLANK);
Präfix und Suffix
AppNavItem
unterstützt Präfix- und Suffixkomponenten. Verwenden Sie diese, um visuelle Klarheit mit Symbolen, Abzeichen oder Schaltflächen zu bieten.
- Präfix: erscheint vor dem Label, nützlich für Symbole.
- Suffix: erscheint nach dem Label, ideal für Abzeichen oder Aktionen.
AppNavItem notifications = new AppNavItem("Alerts");
notifications.setPrefixComponent(TablerIcon.create("alert"));
notifications.setSuffixComponent(TablerIcon.create("link"));
Automatisches Öffnen von Gruppen
Verwenden Sie setAutoOpen(true)
an der AppNav
-Komponente, um verschachtelte Gruppen automatisch zu erweitern, wenn die App aktualisiert wird.
nav.setAutoOpen(true);