SelectBox Dokumentation


Beschreibung:

Das Widget soll eine Optionswahl ermöglichen, mit single- oder multiple select, Label und value setzen oder auslesen, Placeholder definieren, Label (un)sichtbar machen.


Initialisierung:

        interface SelectBoxEntry {
        node: HTMLOptionElement;
        isSelectable: boolean;
        value: string;
        label: string;
        }
        
-------
        // eine leeere SelectBox
        var select = new SelectBox();

        select.on("valueChange", function (value) { console.log("select changed", value); });

        // Optionen definieren
        select.addEntry("a", "erste Option A", true);
        select.addEntry("b", "zweite Option B", true);
        select.addEntry("c", "nicht auswählbar", false);
        select.addEntry("d", "D");
        select.addEntry("e", "E");
        select.addEntry("f", "F");
        select.addEntry("g", "G");

        // Label definieren
        select.setLabel("Select Label :)");


        select.setBlankOption("XXX", "bitte nicht wählen!");

        this.selectBox = select;

        // constructOptions() wird im startup() aufgerufen damit eine Instanziierung im Markup möglich wird
        select.startup();

        this.UiModder.domConstruct.place(select.domNode, this.selectboxContainer);
        

oder im Markup:

<div data-dojo-type="moreCore/UI/SelectBox/SelectBox" data-dojo-attach-point="SelectBox_markup" data-dojo-props="entries: [{value: 'a', label: 'erste Option A', isSlectable:true }, {value: 'b', label: 'zweite Option B', isSlectable:true }, {value: 'c', label: 'nicht aswählbar', isSlectable:false }, {value: 'd', label: 'D'}]"></div>


Public Properties:

isReadonly: boolean = false;
isMultiSelect: boolean = false;

multiple: {
active: boolean;
minCount: number;
maxCount: number;
currentSelect: Array<SelectBoxEntry>
;
}

selectedEntry: SelectBoxEntry

entries:Array<SelectBoxEntry>
blankOption: SelectBoxEntry

_isLabelVisible: boolean
isMandatory: boolean


Public Methods:

setValue(newValue: string, bSuppressChange?: boolean, forceIfDisabled?: boolean, delimiter?: string: void

Wert des Controls setzen. @param bSuppressChange Auslösen eines Änderungs-Emits unterdrücken (true). @param delimiter Falls ein Trennzeichen angegeben wird, trennt sich newValue in ein Array und das Select wird in den Multiple-Modus gesetzt.

setMultipleValue(newValue: Array, unselectOther?: boolean, bSuppressChange?: boolean, forceIfDisabled?: boolean)

nimmt ein Array of Strings und macht sie zu Selected Values, alle anderen Werte können wahlweise "unselected" werden.

setMandatoy(bMandatory:boolean = true): void

setzt den Input required Attribut auf true, den Label Text Style auf "color:red;", den Input auf "w3-border-red w3-pale-red".

setMultipleMode(bMultipleAllowed: boolean, inputHeightElements: number, maxSelectable?: number, minSelect?: number): void

    * Aktiviert oder deaktiviert Mehrfachauswahlmodus
    * @param bMultipleAllowed Modus aktivieren oder deaktiviertn
    * @param inputHeightElements Wenn Modus aktiviert: Höhe des Inputs, Angabe in Zeilenanzahl
    * @param maxSelectable Maximal erlaubte Auswahlanzahl
    * @param minSelect Minimal notwendige Auswahl
    

getValue(bReturnLabels?: boolean): string

liefert wahlweise Value/Labels zurück. true für Labels, false für Values. if (this.multiple.active == true) - ruft die Methode getMultipleValue(bReturnLabels?: boolean): String[] auf, welche dementsprechen mehrere Values zurückgibt. Das Array von getMultipleValue() wird mit toString als ein String returniert.

getBlankValue(): string

Leer-Wert abrufen (für Vergleich ob bereits ein "valider" Wert ausgewählt wurde).

setLabel(newValue:string):void

setzt den Parameter-Wert als Input Label und macht das Label sichtbar.

getLabel():string

Liefert den Label Text zurück.

setIsLabelVisible(visibility: boolean): void

setzt die Property _isLabelVisible uf den Parameter-Wert und macht das Label (un)sichtbar: true == sichtbar, false == unsichtbar.

_updateSelectedEntriesFromValue(forceIfDisabled?: boolean): void

Aus dem aktuell gesetzten Wert die tatsächliche (HTML-)Option ermitteln; Styles und Labels setzen; das gewählte Entry hinterlegen

addEntry(value: string, label: string, isSelectable?: boolean): SelectBoxEntry

Neuen Eintrag zu den auswählbaren Optionen hinzufügen

addOption(value: string, label: string, isSelectable?: boolean)

Alias für addEntry

setBlankOption(value: string, label: string, isSelectable?: boolean)

(leere) Standardauswahl erzeugen, üblicherweise als Platzhalter. Achtung: muss mit constructOptions bestätigt werden!

constructOptions(): void

Options-Einträge aus den Entries erzeugen. Diese müssen vorher befüllt sein!

setOptionStyle(option: HTMLOptionElement, isSelectable?: boolean)

Die Optionen (un)wählbar oder "active"(ausgewählt) machen.

setOptionStyle(option: HTMLOptionElement, isSelectable?: boolean)

Die Optionen (un)wählbar oder "active"(ausgewählt) machen.

setPlaceholder(text: string): void

Einen Placeholder setzen.


Vorhandene Dojo Getter und Setter:

_setPlaceholderAttr(text: string), _setValueAttr(newValue: string), _getValueAttr(): string, _setIsMandatoryAttr(value: boolean), _setLabelAttr(newValue: string), _setReadonlyAttr(bReadOnly: boolean), _setBlankOptionAttr(value: string, label: string, bAvailable: boolean).