ClassicSidebar Layout

Switch

Zustandsschalter (Toggle). Unterstützt Label rechts/links, ohne Label, Disabled, Größen, AfterValueChanged, AutoSaveCallback und Validierung.

Grundvarianten

Label rechts (Standard), Label links, ohne Label.

Label rechts
Wert: True
Label links
Wert: False
Ohne Label
Wert: True

Zustände

Disabled: Switch ist vollständig deaktiviert – ausgegraut, halbtransparent, Cursor zeigt Sperre.

Disabled (inaktiv)
Disabled (aktiv)

Size

Alle fünf Größen von Xs bis Xl.

Xs
Sm
Md (Standard)
Lg
Xl

Events

AfterValueChanged feuert nach jeder Wertänderung.

AfterValueChanged
Änderungen:

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:

Validierung mit DataAnnotations

Integration in EditContext via Form-Komponente. 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 – Switch
---
name: Switch
description: Onesown Blazor Komponente Switch (Inputs). Verwende diesen Skill wenn du die Switch-Komponente verwenden, konfigurieren oder debuggen moechtest.
---

# Switch

**Namespace:** `Onesown.Blazor.Components`  
**Kategorie:** Inputs  
**Basisklasse:** `FormControlBase`  

Toggle-Switch-Eingabefeld für bool-Werte mit konfigurierbarer Label-Position und DataAnnotations-Validierung. Optisch als Schiebeschalter dargestellt – funktional wie eine Checkbox, aber mit klarer An/Aus-Semantik.

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

## Parameter

| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
| ``LabelPosition`` | ``LabelPosition`` | ``LabelPosition.Right`` | Position des Label-Texts relativ zum Switch. Mögliche Werte: Right (Standard), Left. |
| ``ValueChanged`` | ``EventCallback<bool>`` |  | 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. |
| ``Value`` | ``bool`` |  | Aktuell gebundener bool-Wert des Switches. |
| ``Disabled`` | ``bool`` |  | Deaktiviert den Switch: kein Klick, 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 &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
- Label links: LabelPosition="LabelPosition.Left" (Standard: rechts)
- Deaktivieren: Disabled="true" sperrt den Switch und graut ihn aus
- Validierung: ValueExpression wird benötigt um DataAnnotations auszuwerten
- Unterschied zu Checkbox: gleiche Funktion, anderes visuelles Design (Schiebeschalter)


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.