Select
Dropdown-Auswahl mit Suche, Templates, Tastaturnavigation, Validierung und mehr. Unterstützt Floating Label, Clear-Button, Readonly, Disabled, benutzerdefinierte List- und SelectedItem-Templates sowie freie Eingabe.
Grundvarianten
Floating Label (Standard), statisches Label, ohne Label und mit Clear-Button.Floating Label
Option 1
Auswahl: 1
Statisches Label
Auswahl: –
Mit Placeholder
Mit Clear-Button
Option 2
Auswahl: 2
Zustände
Readonly: Wert ist sichtbar, aber nicht änderbar.Disabled: Feld vollständig deaktiviert – ausgegraut, kein Fokus möglich.
Readonly
Option 2
Disabled
Option 3
Disabled (leer)
Templates
ListItemTemplate passt das Aussehen jedes Dropdown-Eintrags an.
SelectedItemTemplate bestimmt die Darstellung des gewählten Werts im Eingabefeld.
NoRecordsTemplate erscheint, wenn die Suche kein Ergebnis liefert.
ListItemTemplate
Option 1
Auswahl: 1
SelectedItemTemplate
★ Option 2
Auswahl: 2
NoRecordsTemplate
AllowCustomValue
MitAllowCustomValue="true" kann der Benutzer einen neuen Wert eingeben und per Enter bestätigen – dieser wird via ItemsChanged an den Parent zurückgegeben.
Freie Eingabe
Optionen: 2 | Auswahl: –
Size
Alle fünf Größen vonXs bis Xl – alle Felder teilen denselben Bindewert.
Xs
Option 1
Sm
Option 1
Md (Standard)
Option 1
Lg
Option 1
Xl
Option 1
Aktueller Wert
1
AfterValueChanged
AfterValueChanged wird nach jeder Auswahländerung ausgelöst.
Änderungs-Zähler
Änderungen: 0×
AutoSaveCallback
AutoSaveCallback wird nach jeder Auswahl ausgelöst – standardmäßig nur wenn der Wert gültig ist (TriggerAutoSaveCallbackOnlyIfValid).
Nur bei gültigem Wert
Gespeichert: –
Immer speichern
Gespeichert: –
Validierung mit DataAnnotations
Integration inEditContext via Form-Komponente und DataAnnotationsValidator. ShowValidationTooltip zeigt die Fehlermeldung inline.
class & style
Beliebige HTML-Attribute (class, style, data-*, aria-*) werden an den Wrapper durchgereicht.
class
style
data-testid
SKILL.md – Select
--- name: Select description: Onesown Blazor Komponente Select (Inputs). Verwende diesen Skill wenn du die Select-Komponente verwenden, konfigurieren oder debuggen moechtest. --- # Select **Namespace:** `Onesown.Blazor.Components` **Kategorie:** Inputs **Basisklasse:** `FormControlBase` **Generisch:** Ja (`Select<TItem>` o.ae.) Generisches Dropdown-Auswahlfeld mit Volltextsuche, Floating-Label, optionalem Clear-Button und DataAnnotations-Validierung. Unterstützt benutzerdefinierte Listenelement-Templates, eigene Wert-Templates und Hinzufügen neuer Einträge per Freitext. **Live-Demo:** https://components.schini.com/demo/select ## Parameter | Parameter | Typ | Standard | Beschreibung | |---|---|---|---| | ``Value`` | ``TValue`` | | Aktuell gebundener Wert. | | ``ValueChanged`` | ``EventCallback<TValue>`` | | EventCallback für Two-Way-Binding mit @bind-Value. Wird nach jeder Wertänderung ausgelöst. | | ``ValueExpression`` | ``Expression<Func<object>>`` | | LINQ-Expression auf die gebundene Model-Property. Wird benötigt für DataAnnotations-Validierung und Floating-Label-Text. | | ``Items`` | ``List<TItem>`` | ``new()`` | Liste der auswählbaren Elemente. Elemente müssen eine "Text"- und "Value"-Property haben, oder ListItemTemplate verwenden. | | ``Readonly`` | ``bool`` | | Setzt das Feld in den Nur-Lesen-Modus: Dropdown nicht öffenbar, Wert nicht änderbar. | | ``Disabled`` | ``bool`` | | Deaktiviert das Feld vollständig: kein Klick, ausgegraut. Standard: false. | | ``ShowClearButton`` | ``bool`` | ``true`` | Zeigt ein X-Symbol zum Zurücksetzen der Auswahl auf null. Standard: true. | | ``ClosePopupOnSelect`` | ``bool`` | ``true`` | Schließt die Dropdown-Liste nach der Auswahl eines Eintrags. Standard: true. | | ``ListItemTemplate`` | ``RenderFragment<TItem>`` | | Benutzerdefiniertes Template für die Darstellung jedes Listenelements im Dropdown. | | ``SelectedItemTemplate`` | ``RenderFragment<TItem>`` | | Benutzerdefiniertes Template für die Darstellung des aktuell gewählten Elements im Eingabefeld. | | ``NoRecordsTemplate`` | ``RenderFragment`` | | Template das angezeigt wird wenn die gefilterte Liste leer ist (keine Treffer). | | ``FooterTemplate`` | ``RenderFragment`` | | Template für zusätzliche Aktionen am Ende der Dropdown-Liste (z.B. "Neu anlegen"-Button). | | ``AllowCustomValue`` | ``bool`` | ``false`` | Erlaubt die Eingabe freier Textwerte die nicht in Items vorhanden sind. Der eingetippte Wert wird via ItemsChanged zurückgegeben. Standard: false. | | ``ItemsChanged`` | ``EventCallback<string>`` | | Wird ausgelöst wenn AllowCustomValue=true und der Nutzer einen neuen Wert per Enter bestätigt. Liefert den eingetippten Text. | | ``CustomValidationMethod`` | ``Func<TValue, bool>`` | | Optionale zusätzliche Validierungsfunktion. Gibt true zurück wenn der Wert gültig ist, false wenn nicht. | ## Geerbte Parameter (FormControlBase) | Parameter | Typ | Standard | Beschreibung | |---|---|---|---| | ``Size`` | ``string`` | ``OoSize.Md`` | Größe der Komponente. Mögliche Werte: OoSize.Xs, OoSize.Sm, OoSize.Md, OoSize.Lg, OoSize.Xl. Wird als CSS-Klasse am Root-Element gesetzt. | | ``Id`` | ``string`` | ``Generator.GenerateRandomHtmlTagID()`` | Eindeutige HTML-ID des Input-Elements. Wird automatisch generiert und kann überschrieben werden (z. B. für Labels mit for-Attribut). | | ``ShowLabel`` | ``bool`` | ``true`` | Blendet das Label über dem Eingabefeld ein oder aus. Standard: true. | | ``IsFloatingLabel`` | ``bool`` | ``true`` | Aktiviert das schwebende Label (Floating Label), das beim Fokus oder bei Eingabe nach oben animiert. Standard: true. | | ``Label`` | ``string`` | | Beschriftung des Eingabefelds. Wird auch als Accessible-Name für Screenreader verwendet. | | ``Placeholder`` | ``string`` | ``" "`` | Platzhaltertext im leeren Eingabefeld. Standard: Leerzeichen (verhindert Floating-Label-Sprung in Chrome). | | ``AutoSaveCallback`` | ``EventCallback`` | | Wird nach jeder Wertänderung ausgelöst und signalisiert der Seite, dass gespeichert werden soll. Kombinierbar mit TriggerAutoSaveCallbackOnlyIfValid. | | ``TriggerAutoSaveCallbackOnlyIfValid`` | ``bool`` | ``true`` | Steuert ob AutoSaveCallback nur bei gültigem Wert ausgelöst wird. Standard: true. | | ``AfterValueChanged`` | ``EventCallback`` | | Wird nach jeder Wertänderung ausgelöst, unabhängig von der Gültigkeit des Werts. Geeignet für Live-Vorschau oder Seiteneffekte. | | ``ShowValidationTooltip`` | ``bool`` | ``false`` | Zeigt Validierungsmeldungen als Tooltip neben dem Feld statt als Text darunter. Standard: false. | ## Hinweise - Immer @bind-Value für Two-Way-Binding verwenden - Für Formular-Validierung ValueExpression="() => _model.Property" setzen - Komponente muss innerhalb eines <Form>- oder <EditForm>-Containers liegen, damit der EditContext greift - AutoSaveCallback wird nach jeder gültigen Änderung ausgelöst, wenn TriggerAutoSaveCallbackOnlyIfValid=true (Standard) - AfterValueChanged wird nach jeder Änderung ausgelöst, unabhängig von der Gültigkeit - ShowValidationTooltip=true zeigt Validierungsmeldungen als Tooltip statt unter dem Feld - TItem ist die Listenelement-Klasse, TValue der gebundene Wert (z.B. int oder string) - TItem muss eine Property "Text" (Anzeige) und "Value" (gebundener Wert) haben, oder via ListItemTemplate selbst gerendert werden - Freitext-Eingabe: AllowCustomValue="true" erlaubt neue Einträge; ItemsChanged-Callback liefert den eingetippten Text - Clear-Button: ShowClearButton="true" (Standard) zeigt X zum Zurücksetzen der Auswahl - Dropdown sofort schließen: ClosePopupOnSelect="true" (Standard) schließt die Liste nach Auswahl - Eigenes Listenelement-Rendering: ListItemTemplate="context => ..." ersetzt die Standard-Textanzeige - Footer-Template: FooterTemplate für zusätzliche Aktionen am Ende der Liste