Mini Widgets
Select (Dropdown)
Select (Dropdown)
Das Widget arcCustomSelect
ist dein Tool für moderne, stilvolle Dropdowns in Ninox. Es ersetzt das klassische Auswahlfeld durch ein vollständig anpassbares Interface – mit Icons, Hovereffekten, Tastatursteuerung und dynamischen Einträgen.

Du verwendest arcCustomSelect
überall dort, wo du deinen Nutzern eine Auswahlmöglichkeit anbieten möchtest – sei es zur Statusvergabe, zum Filtern, oder zur Bearbeitung von Datenfeldern. Das Widget eignet sich ideal für:
Auswahl von Statuswerten (z. B. „Offen“, „In Bearbeitung“, „Abgeschlossen“)
Schnelles Tagging oder Labeling von Datensätzen
Kompakte Navigation innerhalb von Masken
Filterung in Kombination mit anderen Widgets
📢 Der große Vorteil: Du kannst das Design flexibel anpassen (z. B. Breite, Farben, Schriftgröße), dynamische Item-Listen aus Tabellen befüllen und sogar das Verhalten bei Fokus oder Klick feinsteuern.
Gesamter Anwendungscode
Einzelne Parameter
uniqueId
Pflichtfeld: ✅
Mit uniqueId
wird jede Select-Instanz eindeutig identifizierbar – besonders wichtig, wenn mehrere Custom Selects gleichzeitig auf der Seite verwendet werden.
Die ID sorgt intern dafür, dass:
Fokus, Auswahl und Tastaturverhalten korrekt zugeordnet werden,
keine Überschneidungen zwischen Instanzen auftreten,
der Zustand jeder Select-Box stabil bleibt, auch bei schnellem Wechsel oder dynamischem Nachladen.
recordId
Pflichtfeld: ✅
Der Parameter recordId
verknüpft die Select-Komponente mit einem konkreten Datensatz in Ninox – und zwar genau dem, in dem sich das Feld befindet, das du mit dem Select-Widget bespielen möchtest.
field
Pflichtfeld: ✅
Der Parameter field
gibt an, welches Feld im angegebenen Datensatz (recordId
) vom Select-Widget gelesen und beschrieben werden soll.
Dabei handelt es sich nicht um den sichtbaren Feldnamen, sondern um die interne fieldId
des Feldes in Ninox.
🔍 So findest du die fieldId
Die fieldId
ist eine systeminterne Bezeichnung, z. B. "K4"
.
Du kannst sie auf zwei Arten ermitteln:
Mit der Ninox-Funktion:
fieldId()
Oder mit dem kostenlosen Mini-Widget:
fieldFinder
embedded
Gibt an, ob das Select-Widget innerhalb eines anderen Widgets eingebettet ist – z. B. innerhalb einer Custom Table-Spalte oder eines Layout-Containers – oder ob es frei in einem Ninox-Formular als eigenständiges Widget eingebunden wird (z. B. direkt in einem Formelfeld).
width
Der Parameter width
steuert die Darstellungsbreite des Select-Widgets. Du kannst entweder eine feste Breite in Pixeln angeben, z. B. "240px"
, oder eine relative Breite wie "100%"
, damit sich das Widget flexibel an das umgebende Layout anpasst.
Anwendung
In frei platzierten Formelfeldern kannst du mit
width
gezielt das Layout beeinflussen.Wird das Widget eingebettet verwendet (z. B. in einer CustomTable-Spalte), kannst du die Breite automatisch an das Eltern-Element anpassen, wenn du die
width: 100%
einstellst.
💡 Empfehlung: Vermeide sehr kleine Breiten – lange Platzhalter oder Auswahlwerte könnten sonst abgeschnitten dargestellt werden.
height
Mit dem Parameter height
kannst du die sichtbare Höhe der Select-Komponente steuern. Das ist besonders nützlich, wenn du ein einheitliches Layout brauchst oder die Darstellung in Tabellen und verschachtelten Layouts kontrollieren möchtest.
alignX
Mit alignX
bestimmst du die horizontale Ausrichtung des sichtbaren Inhalts im Select-Feld – also zum Beispiel, ob der ausgewählte Wert linksbündig, zentriert oder rechtsbündig dargestellt wird.
Anwendung
"left"
ist der Standardwert und eignet sich in den meisten Fällen."center"
kann in sehr schmalen Feldern oder bei rein ikonischen Inhalten sinnvoll sein."right"
wird selten verwendet, kann aber bei Zahlen oder bestimmten Layoutvorgaben hilfreich sein.
💡 Empfehlung: Verwende center
oder right
nur, wenn das restliche Layout es verlangt – bei längeren Texten ist left
in der Regel besser lesbar.
itemsWidth
Mit itemsWidth
legst du die Breite der Dropdown-Liste fest – also des Bereichs, in dem die Auswahloptionen angezeigt werden. Wenn du diesen Wert nicht setzt, richtet sich die Breite der Liste automatisch nach der Breite des Select-Feldes.
Anwendung: Du kannst die Dropdown-Liste bewusst breiter oder schmaler machen als das Select-Feld selbst. Das ist besonders hilfreich, wenn die Optionsinhalte länger sind als die Breite des eigentlichen Felds zulässt.
itemsHeight
Der Parameter itemsHeight
legt die Höhe einzelner Einträge in der Dropdown-Liste fest. Damit kannst du steuern, wie viel Platz jeder Auswahlpunkt einnimmt – unabhängig von der Schriftgröße.
fontColor
Mit fontColor
kannst du die Schriftfarbe der Auswahlanzeige im Select-Feld festlegen. Das betrifft sowohl Platzhaltertext als auch den aktuell ausgewählten Wert.
💡 Empfehlung: Verwende möglichst hohe Kontraste zum Hintergrund – insbesondere bei eingebetteten Varianten in farbigen Layouts. Bei dunklem Hintergrund solltest du eine helle Schriftfarbe wählen, z. B. "#ffffff"
.
fontSize
Der Parameter fontSize
bestimmt die Größe des Textes innerhalb des Select-Feldes – also sowohl für Platzhalter als auch für ausgewählte Einträge.
fontWeight
Der Parameter fontWeight
bestimmt die Schriftstärke des Textes im Select-Feld (values & placeholder). Damit kannst du gezielt steuern, ob der Text eher dezent oder betont dargestellt werden soll.
Anwendung: Du kannst zwischen vordefinierten Werten wie "normal"
oder "bold"
wählen oder numerische Gewichtungen wie 400
(normal) oder 600
(halbfett) verwenden. Das ist besonders nützlich, wenn du verschiedene Schriftstärken im Layout systematisch verwendest.
backgroundColor
Der Parameter backgroundColor
legt die Hintergrundfarbe des sichtbaren Select-Feldes fest – also die Fläche, in der der Platzhalter oder der ausgewählte Wert angezeigt wird.
Anwendung: Du kannst damit das Widget visuell an deine Oberfläche anpassen, z. B. in dunklen Layouts oder bei farblich abgestimmten Eingabefeldern. Unterstützt werden Farbwerte im HEX-Format, RGB oder Klartextnamen wie "white"
oder "transparent"
.
💡 Empfehlung: Achte auf ausreichenden Kontrast zur Schriftfarbe (fontColor
), damit der Text gut lesbar bleibt. In dunklen Layouts kann "transparent"
sinnvoll sein, wenn das Hintergrunddesign durchscheinen soll.
borderColor
Mit dem Parameter borderColor
legst du die Farbe des Rahmens rund um das Select-Feld fest. Dadurch kannst du das Widget gezielt an dein Farbschema oder Layout anpassen.
💡 Empfehlung: Verwende kontrastreiche Rahmenfarben nur gezielt – z. B. um Felder hervorzuheben oder Gruppen optisch zu trennen. Dezente Grautöne wie "#dddddd"
oder "#999999"
wirken meist angenehm zurückhaltend.
borderWidth
Mit borderWidth
bestimmst du die Dicke des Rahmens rund um das Select-Feld. Dadurch kannst du die visuelle Präsenz des Widgets im Layout erhöhen oder bewusst reduzieren.
Anwendung: Setze dünne Rahmen ("1px"
) für eine dezente Integration oder dickere ("2px"
bis "3px"
) für optische Hervorhebung. "0px"
entfernt den Rahmen komplett, besonders nützlich bei eingebetteten Designs mit klaren Flächen.
borderRadius
Der Parameter borderRadius
steuert die Abrundung der Ecken des Select-Feldes. Damit kannst du das Erscheinungsbild der Komponente zwischen eckig, leicht abgerundet oder komplett rund gestalten.
🧩 Typische Werte
"0px"
→ komplett eckig"4px"
→ leicht abgerundet (Standard)"6px"
→ modern und weich"50%"
→ rund (nur sinnvoll bei quadratischer Breite/Höhe)
itemsSettings Block
Mit itemsSettings
kannst du das Erscheinungsbild des gesamten Dropdown-Menüs steuern – nicht einzelner Listeneinträge, sondern des gesamten Bereichs, in dem alle Optionen angezeigt werden.
labelSettings Block
Mit labelSettings
steuerst du die Darstellung eines optionalen Labels über dem Select-Feld – also einen kurzen Titel oder Hinweistext wie z. B. „Status“ oder „Kategorie“. Dieser Text erscheint oberhalb des Widgets.
title
– Der Text, der als Label angezeigt wird (z. B."Kategorie"
)fontSize
– Schriftgröße des Labels (z. B."11px"
)alignX
– Horizontale Ausrichtung des Labels ("left"
,"center"
,"right"
)height
– Höhe des Label-Containers (z. B."15px"
)
💡 Hinweise
Wird
title
nicht gesetzt oder leer gelassen, erscheint kein Label.Die Ausrichtung (
alignX
) betrifft nur das Label, nicht das Select-Feld selbst.fontSize
undheight
helfen bei der exakten Abstimmung mit anderen Feldern im Layout.
clickPosition
Der Parameter clickPosition
legt fest, welcher Teil des Select-Feldes klickbar ist, um das Dropdown-Menü zu öffnen.
🧩 Mögliche Einstellungen
"icon"
– Nur das kleine Pfeilsymbol ganz rechts ist klickbar."field"
– Das gesamte Feld (inklusive Textfläche und Icon) ist klickbar. (Standard)
placeholder
Der Parameter placeholder
definiert den Anzeigetext im Select-Feld, solange noch kein Wert ausgewählt wurde. Er dient als Hinweis für den Nutzer, was im Feld erwartet wird oder welche Auswahl getroffen werden kann.
🧩 Typische Anwendungsbeispiele
"Bitte auswählen"
"Status wählen"
"–"
Wird ein placeholder
gesetzt, erscheint er grau und leicht transparent, bis eine echte Auswahl getroffen wurde.
💡 Hinweise
Der Text wird nicht gespeichert, sondern dient nur zur Anzeige.
Ist bereits ein
currentValue
übergeben, wird derplaceholder
nicht angezeigt.Halte den Text kurz – z. B.
"select"
oder"choose"
– besonders in schmalen Feldern.
disabled
Der Parameter disabled
legt fest, ob das Select-Feld deaktiviert ist – also nicht klickbar und nicht bearbeitbar.
🧩 Verhalten im deaktivierten Zustand
Das Dropdown lässt sich nicht öffnen.
Der Mauszeiger zeigt Icon "prohibit" (Kreis mit diagonalem Strich)
Der aktuelle Wert bleibt sichtbar, kann aber nicht verändert werden.
Optisch wird das Feld leicht abgeblendet dargestellt.
multiselect
Der Parameter multiselect
aktiviert den Mehrfachauswahl-Modus im Select-Feld. Damit können mehrere Werte gleichzeitig ausgewählt und in das Feld geschrieben werden – statt nur ein einzelner.
🧩 Verhalten bei aktivem multiselect: true
Jeder Klick auf einen Eintrag fügt den Wert zur Liste hinzu (anstatt ihn zu ersetzen).
Bereits ausgewählte Werte bleiben erhalten.
Einträge können visuell als „aktiv“ markiert sein.
Die Auswahl bleibt auch nach einem Klick geöffnet, damit mehrere Werte direkt nacheinander gewählt werden können.
Die Tastatursteuerung unterscheidet sich leicht:
Enter
bestätigt eine Auswahl, das Menü bleibt offen.Tab
wechselt direkt zum nächsten Feld, ohne automatisch zu bestätigen.
⚠️ Wichtig bei der Umsetzung in Ninox
In Ninox kann ein multiselect
nicht direkt in ein Mehrfachauswahlfeld oder Mehrfach-Referenzfeld schreiben. Du musst stattdessen ein Hilfsfeld vom Typ Text verwenden:
Übergib dieses Hilfsfeld im Parameter
field
(bzw.fieldId
) an das Select-Widget.Dort wird der Text aller ausgewählten Werte (z. B. IDs oder Namen) gesammelt – meist als kommaseparierte Liste.
Nutze anschließend einen „Trigger nach Änderung“ auf das Hilfsfeld, um die tatsächliche Mehrfachauswahl zu befüllen.
Trigger-Code:
emptyValue
In dem Parameter emptyValue bestimmst du, was der Text des zurücksetzen Buttons (erstes Auswahlfeld im geöffneten dropdown/items) sein soll.(seit v1.1.0) (wird überschrieben, wenn im reset Block bei title etwas eingetragen ist)
!! Vorerst bleibt der bisherige Einstellungs-Parameter
emptyValue: "zurücksetzen"
noch aktiv, nutzt aber bitte in Zukunft für diese Einstellungen den Parametertitle: "zurücksetzen"
im reset Block.
reset Block
Der reset
-Block steuert, ob und wie im Dropdown-Menü eine „Zurücksetzen“-Option angezeigt wird, mit der der aktuelle Wert gelöscht oder auf einen definierten Wert zurückgesetzt werden kann.
title
– Der angezeigte Text für den Zurücksetzen-Eintrag (z. B."(leer)"
,"Zurücksetzen"
).value
– Der Wert, der gesetzt wird, wenn der Eintrag angeklickt wird. Wenn nicht gesetzt, wird automatischemptyValue
verwendet.hide
– Wenntrue
, wird der Reset-Eintrag nicht angezeigt, kann aber trotzdem intern genutzt werden.
focusAction Settingsblock
Du kannst nun mit dem Parameter autoFocus
in dem neuen Settingsblock focusAction
im Select bestimmen, ob der cursor automatisch in das Suchfeld springt oder nicht. Besonders für Tablets, wo die Tastatur sofort aufspringt und den User irritieren könnte ist das abschalten hilfreich.
currentValue
Der Parameter currentValue
legt fest, welcher Wert im Select-Feld bei ausgewählten items sein soll. Er bestimmt also die Anzeige des Feldes im geschlossenen Zustand.
🧩 Verhalten je nach Modus
Single-Select (
multiselect: false
)
Der Wert wird direkt als einzelner Text oder Zahl übergeben (z. B."Offen"
oder1
).Multi-Select (
multiselect: true
)
Der Wert ist ein Array von Strings oder Zahlen, z. B.[Bluse, Kleidung, Oberteil]
oder[1, 2]
.
Jeder enthaltene Wert wird in der Liste als „aktiv“ markiert.
items Block
Pflichtfeld: ✅
Der items
-Block definiert die Auswahlmöglichkeiten, die im Dropdown angezeigt werden. Jede Option wird als Objekt mit bestimmten Eigenschaften angegeben – z. B. sichtbarer Text, interner Wert und aktiver Zustand.
🔄 Zwei Aufbauvarianten: Du kannst das customSelect
auf zwei verschiedene Arten mit Werten befüllen:
1. Dynamisch aus einer Ninox-Tabelle
Ideal für Listen, die sich ändern können oder mit anderen Feldern verknüpft sind.
2. Manuelle Liste im Code
Geeignet, um z. B. ein einfaches Auswahlfeld aus Ninox direkt nachzubauen, bzw. anzusteuern. (ohne externe Tabelle).
🧩 Struktur pro Eintrag
title
– Der sichtbare Text im Menüvalue
– Der zu speichernde Wertactive
– Wann wird dieser Eintrag als ausgewählt markiert
🎹 Tastaturverhalten im Vergleich
Taste | Single-Select Verhalten | Multi-Select Verhalten |
---|---|---|
Tab | ✅ Auswahl wird bestätigt➡️ Fokus springt weiter | ➡️ Fokus springt weiter🚫 Keine Bestätigung |
Enter | ✅ Auswahl wird bestätigt🔒 Select wird geschlossen | ✅ Auswahl wird bestätigt🔓 Select bleibt geöffnet |
Escape | ❌ Select wird geschlossen | ❌ Select wird geschlossen |
✅ Fazit
Das customSelect
-Widget ist eine vielseitige Lösung für individuelle Auswahlfelder in Ninox – von einfachen Einzelauswahlen bis zu dynamischen Multi-Selects mit Hilfslogik.
Nutze es, wenn du mehr Kontrolle über Darstellung, Verhalten und Interaktion brauchst als Ninox von Haus aus bietet.
Mit klaren Parametern, flexiblen Datenquellen und voller Tastatursteuerung lässt sich das Widget nahtlos in jedes Formular oder Layout integrieren.