Eingabefelder: Dropdown Editor
Zurück: Demo-Übersicht
1. Übersicht und Zweck
Status: [Live] —
widgets::dropdown() plus Overlay-Verhalten in scripts/formfields.js.
Herkunft und ARIA-Vertrag der Zeile „Dropdown„ im
Basis-Widget-Katalog
(aria-haspopup/aria-expanded, Klasse .wk-dropdown).
Referenz: DevExpress ASPxDropDownEdit (beliebiger Popup-Inhalt statt
fester Optionsliste).
2. Voraussetzungen
Gemeinsamer Feld-Kontrakt bereits verstanden.
3. Konzepte
Abgrenzung zu Combo Box: der Dropdown Editor unterscheidet sich von
Combo Box
dadurch, dass das Popup beliebiges HTML trägt (z. B. ein
Mini-propertyGrid(), eine Farbpalette, ein Datumsbereich-Picker) statt
einer reinen Text+Value-Liste — analog zu BaseDropdown/DropdownMenu
im Widget-Katalog.
No-JS-Verhalten: ohne JavaScript rendert der Dropdown Editor als
natives <details>/<summary>-Paar (dieselbe Grundtechnik wie
widgets::tree()) — das Popup ist ein aufklappbarer Bereich im normalen
Dokumentfluss, kein schwebendes Overlay. Mit JavaScript positioniert
scripts/formfields.js das Popup stattdessen als
Overlay über dem Feld und schließt es bei Klick außerhalb bzw. Escape.
4. Erste Schritte
echo $widgets->dropdown([ 'name' => 'zeitraum', 'label' => 'Zeitraum', 'summaryHtml' => hsc('Letzte 7 Tage'), 'popupHtml' => $widgets->propertyGrid($zeitraumFelder), ]);
5. Verwendung
Für beliebigen Popup-Inhalt (Formulare, Farbpaletten, Picker). Für eine feste Text+Value-Liste stattdessen Combo Box verwenden.
6. API-Referenz
Methode dropdown(array $opts): string in
helper_plugin_wkfluentui_widgets.
7. Parameter, Optionen und Zustände
| Schlüssel | Typ | Bedeutung |
|---|---|---|
summaryHtml | string | vertrauenswürdiges HTML für den sichtbaren, geschlossenen Zustand (z. B. der aktuell gewählte Wert als Text) |
popupHtml | string | vertrauenswürdiges HTML des Popup-Inhalts |
closeOnSelect | bool | ob eine Auswahl im Popup dieses automatisch schließt (JS-Verhalten, No-JS bleibt manuell über den <summary>-Klick) |
8. Vollständige Beispiele
echo $widgets->dropdown([ 'name' => 'filter', 'label' => 'Erweiterte Filter', 'summaryHtml' => hsc('3 Filter aktiv'), 'popupHtml' => $widgets->propertyGrid($filterFelder), 'closeOnSelect' => false, ]);
9. Einschränkungen und Randfälle
Keine über die Feature-Seiten hinaus.
10. Accessibility und Kompatibilität
Vollständiger Überblick: Accessibility.
11. Troubleshooting
Entfällt.
12. Verwandte Themen
- Demo-Übersicht — alle Kategorien
- Eingabefelder: Combo Box — feste Text+Value-Liste statt freiem Popup-Inhalt
- FluentUI: Basis-Widget-Katalog — Tier-2-CSS-/ARIA-Vorstufe