(Multi)Select ohne Input
Chip-basierte Mehrfachauswahl ohne Texteingabefeld sowie kompakter Einzelauswahl-Modus (MultiSelect="false") mit Popup-Liste und Suche.
Einzelauswahl (MultiSelect="false")
Standard-Button mit Popup,Icon-Parameter, benutzerdefinierter BtnTemplate und Readonly-Modus.
Standard
Auswahl: Stern
Icon-Parameter
Auswahl: –
Custom BtnTemplate
Auswahl: –
Readonly
Einzelauswahl – ListItemTemplate
ListItemTemplate erlaubt eine individuelle Darstellung jedes Eintrags in der Popup-Liste.
Mit Material-Icon
Home
Einzelauswahl – Validierung
Integration inEditContext via Form-Komponente. ShowValidationTooltip zeigt die Fehlermeldung inline.
Grundvarianten
Standard, Readonly und mit Chip-Farbe.Standard
Option 1
Option 3
Auswahl: 1, 3
Readonly
Option 1
Option 3
Auswahl: 1, 3
ChipStyle
BeliebigesOoColorPalette-Farbschema für die Chips – inklusive Helligkeitsstufen und Varianten.
Primary
Option 2
Option 4
Secondary
Option 2
Option 4
Success.Light
Option 2
Option 4
Danger.Outline
Option 2
Option 4
Warning.Ghost
Option 2
Option 4
Aktueller Wert
2, 4
AddBtnTemplate & AddAllBtnTemplate
Der+-Button öffnet ein Dropdown zur Auswahl weiterer Items. Mit AddBtnTemplate und AddAllBtnTemplate lassen sich eigene Schaltflächen einsetzen.
Standard + AddAllBtn
Option 1
Auswahl: 1
Custom AddBtnTemplate
Auswahl:
Max – Overflow-Anzeige
Max: Begrenzt die sichtbaren Chips. Überzählige werden hinter einem +N-Button verborgen und lassen sich aufklappen.
Max="3"
Alpha
Beta
Gamma
Delta
Epsilon
Zeta
Auswahl: 1, 2, 3, 4, 5, 6
ChipItemTemplate
Eigenes Chip-Design perRenderFragment<TItem>.
Custom Template
🏷 Option 1
🏷 Option 3
Auswahl: 1, 3
Validierung
Pflichtfeld-Validierung mitShowValidationTooltip und ValueExpression.
Pflichtfeld
SKILL.md – Multiselectohneinput
--- name: MultiselectOhneInput description: Onesown Blazor Komponente MultiselectOhneInput (Inputs). Verwende diesen Skill wenn du die MultiselectOhneInput-Komponente verwenden, konfigurieren oder debuggen moechtest. --- # MultiselectOhneInput **Namespace:** `Onesown.Blazor.Components` **Kategorie:** Inputs **Basisklasse:** `FormControlBase` **Generisch:** Ja (`MultiselectOhneInput<TItem>` o.ae.) Mehrfach- oder Einzelauswahl-Komponente ohne Texteingabefeld – öffnet die Auswahlliste per Icon- oder Custom-Button. Geeignet für kompakte Szenarien (z.B. Icon-Picker, Tag-Auswahl ohne Suchfeld) und unterstützt sowohl Multi- als auch Einzelauswahl-Modus. **Live-Demo:** https://components.schini.com/demo/multiselectohneinput ## 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. | | ``ItemsChanged`` | ``EventCallback<string>`` | | Wird ausgelöst wenn der Nutzer einen neuen Freitext-Wert hinzufügt (nur bei AllowCustomValue=true). | | ``Readonly`` | ``bool`` | | Setzt den Nur-Lesen-Modus: Dropdown nicht öffenbar, Chips sichtbar aber nicht entfernbar. | | ``ClosePopupOnSelect`` | ``bool`` | ``true`` | Schließt die Dropdown-Liste nach der Auswahl eines Eintrags. Standard: true. | | ``MultiSelect`` | ``bool`` | ``true`` | true = Mehrfachauswahl (Standard), false = Einzelauswahl (wie IconPicker). | | ``SingleValue`` | ``TValue`` | | Einzelauswahl-Modus: aktuell gewählter Wert. | | ``SingleValueChanged`` | ``EventCallback<TValue>`` | | Einzelauswahl-Modus: Callback bei Wertänderung. | | ``SingleValueExpression`` | ``Expression<Func<object>>`` | | Einzelauswahl-Modus: Expression für Validierung/Label. | | ``Icon`` | ``string`` | | Einzelauswahl-Modus: Icon-Name (Material Symbol) als Trigger-Button. | | ``ListItemTemplate`` | ``RenderFragment<TItem>`` | | Benutzerdefiniertes Template für die Darstellung jedes Listenelements im Dropdown. | | ``ChipItemTemplate`` | ``RenderFragment<TItem>`` | | Benutzerdefiniertes Template für die Darstellung jedes ausgewählten Chips. | | ``ChipItemRemoveBtnTemplate`` | ``RenderFragment`` | | Benutzerdefiniertes Template für den Entfernen-Button in jedem Chip. | | ``NoRecordsTemplate`` | ``RenderFragment`` | | Template das angezeigt wird wenn die gefilterte Liste leer ist. | | ``AddBtnTemplate`` | ``RenderFragment`` | | Template für einen "Hinzufügen"-Button im Dropdown-Footer. | | ``AddAllBtnTemplate`` | ``RenderFragment`` | | Template für einen "Alle hinzufügen"-Button im Dropdown-Footer. | | ``BtnTemplate`` | ``RenderFragment`` | | Einzelauswahl-Modus: eigener Trigger-Button statt Standard-Icon. | | ``Value`` | ``List<TValue>`` | ``new()`` | Mehrfachauswahl: Liste der aktuell ausgewählten Werte. | | ``ValueChanged`` | ``EventCallback<List<TValue>>`` | | EventCallback für Two-Way-Binding mit @bind-Value (Mehrfachauswahl). Wird nach jeder Änderung ausgelöst. | | ``ValueExpression`` | ``Expression<Func<object>>`` | | LINQ-Expression für DataAnnotations-Validierung und Label (Mehrfachauswahl). | | ``CustomValidationMethod`` | ``Func<List<TValue>, bool>`` | | Optionale zusätzliche Validierungsfunktion für die Mehrfachauswahl. | | ``ChipStyle`` | ``OoButtonStyle`` | | Chip-Farbschema: null = Standard grau, z.B. OoColorPalette.Primary.Lighter | ## 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 - Mehrfachauswahl (Standard): MultiSelect="true", Value=List<TValue>, ValueChanged=List<TValue> - Einzelauswahl: MultiSelect="false", SingleValue=TValue, SingleValueChanged=TValue - Trigger-Button: Icon="edit" setzt einen Material-Symbol-Icon-Button; BtnTemplate für vollständig eigenes Markup - Chip-Darstellung: ChipItemTemplate für eigene Chip-Darstellung der gewählten Einträge - Alle hinzufügen: AddAllBtnTemplate zeigt einen "Alle hinzufügen"-Button im Dropdown - Readonly: Dropdown nicht öffenbar, bestehende Chips bleiben sichtbar aber nicht entfernbar