TextArea
Mehrzeiliges Texteingabefeld. Unterstützt Label, Placeholder, Floating Label, ReadOnly, Disabled, Zeichenbegrenzung via DataAnnotations, AfterValueChanged, AutoSaveCallback, CustomValidationMethod, ValidateOnInput, Größen und Validierung.
Grundvarianten
Standard, mit Placeholder, ohne Label und mit deaktiviertem Floating Label.Standard
Zeichen: 0
Mit Placeholder
Ohne Label
Floating Label deaktiviert
rows-Attribut
Zustände
ReadOnly: Wert ist sichtbar und kopierbar, aber nicht editierbar – gestrichelter Rahmen.Disabled: Feld ist vollständig deaktiviert – ausgegraut, halbtransparent.
ReadOnly
ReadOnly (leer)
Disabled
Disabled (leer)
Size
Alle fünf Größen vonXs bis Xl – alle Felder teilen denselben Bindewert.
Xs
Sm
Md (Standard)
Lg
Xl
Aktueller Wert
AfterValueChanged
AfterValueChanged wird nach jeder Wertänderung ausgelöst (Callback ohne Rückgabewert).
AfterValueChanged
Änderungen: 0×
AutoSaveCallback
AutoSaveCallback wird nach jeder Wertänderung ausgelöst – standardmäßig nur wenn das Feld gültig ist (TriggerAutoSaveCallbackOnlyIfValid).
Nur bei gültigem Wert
Gespeichert: –
Immer speichern
Gespeichert: –
CustomValidationMethod
Eigene Validierungslogik ohne DataAnnotations – direkt alsFunc<string, bool>.
Mindestlänge 20
ValidateOnInput
ValidateOnInput="true" (Standard): Validierung sofort beim Tippen. false: erst nach Verlassen des Feldes.
ValidateOnInput = true
ValidateOnInput = false
Zeichenbegrenzung via DataAnnotations
[MaxLength] wird automatisch ausgewertet – Eingabe wird auf die angegebene Länge gekürzt.
Validierung mit DataAnnotations
Integration inEditContext via Form-Komponente und DataAnnotationsValidator. ShowValidationTooltip zeigt Fehlermeldungen inline.
class & style
Beliebige HTML-Attribute (class, style, data-*, aria-*) werden an den Input-Wrapper durchgereicht.
class
style
aria-label
data-testid
SKILL.md – Textarea
--- name: TextArea description: Onesown Blazor Komponente TextArea (Inputs). Verwende diesen Skill wenn du die TextArea-Komponente verwenden, konfigurieren oder debuggen moechtest. --- # TextArea **Namespace:** `Onesown.Blazor.Components` **Kategorie:** Inputs **Basisklasse:** `FormControlBase` Mehrzeiliges Texteingabefeld mit Floating-Label, DataAnnotations-Validierung und MaxLength-Auswertung. Verhält sich wie TextBox, jedoch als textarea-Element ohne Clear-Button oder Enter-Event. **Live-Demo:** https://components.schini.com/demo/textarea ## Parameter | Parameter | Typ | Standard | Beschreibung | |---|---|---|---| | ``ValidateOnInput`` | ``bool`` | ``true`` | Validiert das Feld bei jedem Tastendruck (oninput), nicht erst beim Verlassen des Felds (onchange). Standard: true. | | ``ValueExpression`` | ``Expression<Func<object>>`` | | LINQ-Expression auf die gebundene Model-Property. Wird benötigt für DataAnnotations-Validierung, Floating-Label-Text und MaxLength-Auswertung. | | ``ValueChanged`` | ``EventCallback<string>`` | | EventCallback für Two-Way-Binding mit @bind-Value. Wird nach jeder Wertänderung ausgelöst. | | ``Value`` | ``string`` | | Aktuell gebundener Textwert. | | ``CustomValidationMethod`` | ``Func<string, bool>`` | | Optionale zusätzliche Validierungsfunktion. Gibt true zurück wenn der Wert gültig ist, false wenn nicht. Ergänzt DataAnnotations-Validierung. | | ``Readonly`` | ``bool`` | | Setzt das Feld in den Nur-Lesen-Modus: Eingabe gesperrt, aber nicht ausgegraut. Der Wert bleibt selektierbar und kopierbar. | ## 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 - Floating-Label: Label wird automatisch aus [Display]-Annotation gelesen, wenn ValueExpression gesetzt ist - MaxLength wird automatisch aus [MaxLength]-DataAnnotation gelesen, wenn ValueExpression gesetzt ist - Echtzeit-Validierung: ValidateOnInput="true" (Standard) validiert bei jedem Tastendruck - Nur-Lesen-Modus: Readonly="true" sperrt Eingabe, lässt den Text aber selektierbar - Eigene Validierung: CustomValidationMethod ergänzt DataAnnotations-Validierung mit eigenem Delegate