ClassicSidebar Layout

AutoComplete

Single-Value Eingabefeld mit Dropdown-Vorschlagsliste. Zeigt passende Einträge während der User tippt oder beim Fokussieren. Kein Chip-Missbrauch mehr.

Einfaches Beispiel (string)

AutoComplete mit einer Liste von Strings. OpenOnFocus öffnet das Dropdown beim Klick ins Feld.

Gewählt:

Objekt-Liste (TItem / TValue)

AutoComplete mit Objekt-Liste – TItem=Person, TValue=int (Id). Text wird aus "Text"-Property gelesen.

Gewählte Id: 0

Kein OpenOnFocus – nur beim Tippen

Mit OpenOnFocus="false" öffnet das Dropdown erst wenn der User zu tippen beginnt.

Gewählt:

TriggerChars – Separator öffnet Dropdown neu

Mit TriggerChars="System.Char[]" öffnet ein Beistrich das Dropdown erneut. Ideal für schnelle Mehrfachauswahl nacheinander.

Letzter Wert:

Voller Text:

Size

Alle fünf Größen von Xs bis Xl – alle Felder teilen denselben Bindewert.

Xs
Sm
Md (Standard)
Lg
Xl
Aktueller Wert

Gewählt:

Readonly & Disabled

Readonly sperrt die Eingabe, Disabled deaktiviert das Feld vollständig.

Validierung

Pflichtfeld-Validierung mit ShowValidationTooltip.

SKILL.md – Autocomplete
---
name: AutoComplete
description: Onesown Blazor Komponente AutoComplete (Inputs). Verwende diesen Skill wenn du die AutoComplete-Komponente verwenden, konfigurieren oder debuggen moechtest.
---

# AutoComplete

**Namespace:** `Onesown.Blazor.Components`  
**Kategorie:** Inputs  
**Basisklasse:** `FormControlBase`  
**Generisch:** Ja (`AutoComplete<TItem>` o.ae.)  

Generisches Single-Value Eingabefeld mit Dropdown-Vorschlagsliste (AutoComplete / ComboBox). Zeigt passende Einträge aus einer Items-Liste während der User tippt oder beim Fokussieren des Felds. Der ausgewählte Wert wird als Text im Input dargestellt – keine Chips, kein Multi-Select.

**Live-Demo:** https://components.schini.com/demo/autocomplete  

## Parameter

| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
| ``Items`` | ``List<TItem>`` | ``new()`` | Liste der auswählbaren Elemente. Elemente müssen eine "Text"- und "Value"-Property haben, oder ListItemTemplate verwenden. |
| ``Value`` | ``TValue`` |  | Der aktuell ausgewählte Wert. |
| ``ValueChanged`` | ``EventCallback<TValue>`` |  | EventCallback für Two-Way-Binding mit @bind-Value. Wird nach jeder Ä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. |
| ``OpenOnFocus`` | ``bool`` | ``true`` | Öffnet das Dropdown bereits beim Fokussieren des Felds, auch ohne Tippen. Standard: true. |
| ``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. |
| ``UseSplitSearch`` | ``bool`` |  | Sucht nach jedem Wort des Suchbegriffs einzeln statt dem gesamten Begriff. Standard: false. |
| ``AllowClear`` | ``bool`` | ``false`` | Zeigt ein X-Icon zum Zurücksetzen des ausgewählten Werts. Standard: false. |
| ``MaxItems`` | ``int`` | ``50`` | Maximale Anzahl angezeigter Vorschläge im Dropdown. Standard: 50. |
| ``TriggerChars`` | ``char[]`` |  | Trennzeichen für Token-basierte Eingabe (z.B. ","). Filter und Auswahl arbeiten nur mit dem Text nach dem letzten Trennzeichen – wie bei einem E-Mail-Empfängerfeld. Standard: null = deaktiviert. |
| ``VollerTextChanged`` | ``EventCallback<string>`` |  | Gibt den vollständigen sichtbaren Eingabetext zurück (inkl. aller Token). Nützlich bei TriggerChars-Verwendung um z.B. "Deutschland, Österreich" anzuzeigen. |
| ``ListItemTemplate`` | ``RenderFragment<TItem>`` |  | Benutzerdefiniertes Template für die Darstellung jedes Listenelements im Dropdown. |
| ``NoRecordsTemplate`` | ``RenderFragment`` |  | Template das angezeigt wird wenn die gefilterte Liste leer ist (keine Treffer). |
| ``CustomValidationMethod`` | ``Func<object, bool>`` |  | Optionale zusätzliche Validierungsfunktion. Gibt true zurück wenn der Wert gültig ist. |

## 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 &lt;Form&gt;- oder &lt;EditForm&gt;-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 Listenobjekt-Klasse, TValue der gebundene Werttyp (z.B. int oder string)
- TItem muss eine "Text"- und "Value"-Property haben, oder ListItemTemplate verwenden
- OpenOnFocus="true" öffnet das Dropdown bereits beim Klick ins Feld ohne Tippen
- AllowClear="true" zeigt ein X-Icon zum Zurücksetzen des Werts
- UseSplitSearch="true" sucht nach jedem Wort einzeln statt dem gesamten Suchbegriff
- Einfachstes Beispiel: &lt;AutoComplete Items="_laender" @bind-Value="_land" /&gt;
- Mit Label: &lt;AutoComplete Label="Land" Items="_laender" @bind-Value="_land" /&gt;


Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.