NumberBox
Numerisches Eingabefeld für int, decimal und double – mit Validierung, ReadOnly, Disabled, AutoSave und Custom-Validierung.
Grundvarianten
int?, decimal?, double? – alle mit Binding und Wertenanzeige.int?
Wert:
decimal?
Wert:
double?
Wert:
Mit Placeholder
Ohne Label
Floating Label deaktiviert
Zustände
ReadOnly: Wert ist sichtbar und kopierbar, aber nicht editierbar – gestrichelter Rahmen, normaler Text, kein Sperr-Cursor.Disabled: Feld ist vollständig deaktiviert – ausgegraut, halbtransparent, Cursor zeigt Sperre.
ReadOnly
ReadOnly (leer)
Disabled
Disabled (leer)
AfterValueChanged
AfterValueChanged wird nach jeder Wertänderung ausgelöst.
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<TValue, bool>.
Nur positive Werte
Bereich 1–100
Max. 2 Nachkommastellen
Validierung mit DataAnnotations
Integration inEditContext via Form-Komponente und DataAnnotationsValidator. ShowValidationTooltip zeigt Fehlermeldungen inline.
ValidateOnInput
ValidateOnInput="true" (Standard): Validierung sofort beim Tippen. false: erst nach Verlassen des Feldes.
ValidateOnInput = true
ValidateOnInput = false
Size
Alle fünf Größen vonXs bis Xl – alle Felder teilen denselben Bindewert.
Xs
Sm
Md (Standard)
Lg
Xl
Aktueller Wert
class & style
Beliebige HTML-Attribute (class, style, data-*, aria-*) werden an den Input-Wrapper durchgereicht.
class
style
aria-label
data-testid
SKILL.md – Numberbox
--- name: NumberBox description: Onesown Blazor Komponente NumberBox (Inputs). Verwende diesen Skill wenn du die NumberBox-Komponente verwenden, konfigurieren oder debuggen moechtest. --- # NumberBox **Namespace:** `Onesown.Blazor.Components` **Kategorie:** Inputs **Basisklasse:** `FormControlBase` **Generisch:** Ja (`NumberBox<TItem>` o.ae.) Generisches Zahlen-Eingabefeld (int, long, short, float, double, decimal) mit Floating-Label und DataAnnotations-Validierung. Ungültige Eingaben werden sofort als invalid markiert, ohne den gebundenen Wert zu überschreiben. **Live-Demo:** https://components.schini.com/demo/numberbox ## Parameter | Parameter | Typ | Standard | Beschreibung | |---|---|---|---| | ``ValidateOnInput`` | ``bool`` | ``true`` | Validiert das Feld bei jeder Eingabe (oninput). Standard: true. | | ``ValueExpression`` | ``Expression<Func<object>>`` | | LINQ-Expression auf die gebundene Model-Property. Wird benötigt für DataAnnotations-Validierung und Floating-Label-Text. | | ``ValueChanged`` | ``EventCallback<TValue>`` | | EventCallback für Two-Way-Binding mit @bind-Value. Wird nach jeder gültigen Wertänderung ausgelöst. | | ``Value`` | ``TValue`` | | Aktuell gebundener Zahlenwert. | | ``CustomValidationMethod`` | ``Func<TValue, bool>`` | | Optionale zusätzliche Validierungsfunktion. Gibt true zurück wenn der Wert gültig ist, false wenn nicht. Ergänzt DataAnnotations-Validierung. | | ``ReadOnly`` | ``bool`` | ``false`` | Setzt das Feld in den Nur-Lesen-Modus: Eingabe gesperrt, aber nicht ausgegraut. Standard: false. | ## 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 - Typparameter TValue: unterstützt int, long, short, float, double, decimal (nullable-Varianten ebenfalls) - Ungültige Werte: werden im Feld angezeigt und als invalid markiert, TValue-Binding bleibt unverändert - Nur-Lesen-Modus: ReadOnly="true" sperrt Eingabe, aber nicht ausgegraut - Echtzeit-Validierung: ValidateOnInput="true" (Standard) validiert bei jeder Eingabe - Eigene Validierung: CustomValidationMethod ergänzt DataAnnotations-Validierung mit eigenem Delegate