WEBRAD / TECHNICAL REFERENCE
Combo Box
Single selection with static items or an API response.
WebComboBoxStandardVisual3 events
Quick start
Add ComboBox1 in the Designer. Use the example in a page method.
ComboBox1.items = [
{ value: 'sp', label: 'São Paulo' },
{ value: 'rj', label: 'Rio de Janeiro' },
];
ComboBox1.value = 'sp';
ComboBox1.onChange = (sender) => { Message(sender.value); };
// To use an API, configure the source in the Inspector.- Items in code use value, label, and optional disabled; a string list uses its text as the value.
- For remote data, configure API Client, operation, list, and fields in the source editor.
- Read value or selectedIndex in OnChange.
More examples
Items with keys, labels, and disabled states
ComboBox1.items = [
{ value: '', label: 'Select', disabled: true },
{ value: '42', label: 'Ana Silva' },
];
ComboBox1.value = '42';
console.log(ComboBox1.selectedIndex, ComboBox1.value);
// For text-only options, items also accepts strings:
ComboBox1.items = ['Small', 'Medium', 'Large'];Inspector properties
Component options and defaults. Fields without runtime access are configured in the Inspector.
| Property / source | Type and options | Default | Runtime access |
|---|---|---|---|
nameName · Identity | string | — | name |
xLeft · Size & position | number | 0 | x |
yTop · Size & position | number | 0 | y |
widthWidth · Size & position | number | 160 | width |
heightHeight · Size & position | number | 36 | height |
itemWidthResponsive width · Responsive sizeFit content grows the item to its widest rendered child and preserves child intrinsic widths; minimum and maximum width remain limits. | enumfixed stretch fit-content | "fixed" | Inspector / configuration |
itemHeightResponsive height · Responsive sizeFit content grows the item to its lowest rendered child and preserves child intrinsic heights; minimum and maximum height remain limits. | enumfixed stretch fit-content | "fixed" | Inspector / configuration |
itemMinWidthMinimum width · Responsive size | number | 0 | Inspector / configuration |
itemMaxWidthMaximum width · Responsive size | number | null | Inspector / configuration |
itemMinHeightMinimum height · Responsive size | number | 0 | Inspector / configuration |
itemMaxHeightMaximum height · Responsive size | number | null | Inspector / configuration |
itemGrowGrow · Responsive size | number | 0 | Inspector / configuration |
itemShrinkShrink · Responsive sizeAllows fixed and stretch flow items to yield space. Fit-content keeps its intrinsic size so its children are not compressed. | boolean | true | Inspector / configuration |
itemAlignSelfItem alignment · Responsive sizeCross-axis alignment for this item in a row or column. Auto inherits the parent alignment; responsive cross-axis stretch retains its sizing behavior. | enumauto start center end stretch | "auto" | Inspector / configuration |
itemHorizontalAnchorHorizontal anchor · Anchors & offsets | enumstart center end stretch | "start" | Inspector / configuration |
itemVerticalAnchorVertical anchor · Anchors & offsets | enumstart center end stretch | "start" | Inspector / configuration |
itemLeftLeft inset · Anchors & offsets | number | 0 | Inspector / configuration |
itemRightRight inset · Anchors & offsets | number | 0 | Inspector / configuration |
itemTopTop inset · Anchors & offsets | number | 0 | Inspector / configuration |
itemBottomBottom inset · Anchors & offsets | number | 0 | Inspector / configuration |
marginMargin · SpacingOuter spacing on all four sides, in pixels. Row and column layouts include this spacing between components. | number | 0 | margin |
marginTopMargin top · SpacingOuter spacing on this side, in pixels. Overrides the shared Margin value. | number | 0Derived from saved properties | marginTop |
marginRightMargin right · SpacingOuter spacing on this side, in pixels. Overrides the shared Margin value. | number | 0Derived from saved properties | marginRight |
marginBottomMargin bottom · SpacingOuter spacing on this side, in pixels. Overrides the shared Margin value. | number | 0Derived from saved properties | marginBottom |
marginLeftMargin left · SpacingOuter spacing on this side, in pixels. Overrides the shared Margin value. | number | 0Derived from saved properties | marginLeft |
visibleVisible · Behavior | boolean | true | visible |
enabledEnabled · Behavior | boolean | true | enabled |
tabIndexTabIndex · Behavior | number | 0 | tabIndex |
itemsItems · Data | string-listEditor: combo-box-items | [] | itemsConditional availability in the Inspector |
valuesValues · Data | string-listEditor: combo-box-values | [] | valuesConditional availability in the Inspector |
comboBoxConfigAPI Client binding · DataSelect the API Client response list, display field, and key field. | combo-box-configEditor: combo-box-configurator | null | comboBoxConfig |
selectedIndexSelected Index · DataFor API-bound options, use Value to select the key after the list loads. | number | -1 | selectedIndexConditional availability in the Inspector |
valueValue · Data | string | "" | value |
currentRowBindingsCurrent row · DataBind writable visual values to fields of this repeated row. | current-row-bindingsEditor: current-row-bindings | [] | currentRowBindings |
API in code
| Member | Signature | Access |
|---|---|---|
value | value: string; | Read and write |
selectedIndex | selectedIndex: number; | Read and write |
values | get values(): readonly string[]; | Read and write |
items | get items(): readonly WebSelectItem[]; | Read and write |
comboBoxConfig | comboBoxConfig: WebComboBoxConfiguration | null; | Read and write |
onChange | set onChange(handler: WebComponentEventHandler<this> | null); | Read and write |
bindApiClient
methodbindApiClient(apiClient: WebApiClient | null): void;Example
ComboBox1.bindApiClient(ApiClient1);dispose
methodoverride dispose(): void;Example
// Call only when disposing of an instance whose lifecycle you control.
ComboBox1.dispose();Inherited members (26)
| Member | Signature | Access |
|---|---|---|
currentRowBindings | currentRowBindings: readonly WebCurrentRowBinding[]; | Read and write |
element | readonly element: TElement; | Read-only |
id | readonly id: string; | Read-only |
name | readonly name: string; | Read-only |
visible | visible: boolean; | Read and write |
enabled | enabled: boolean; | Read and write |
x | x: number; | Read and write |
y | y: number; | Read and write |
width | width: number; | Read and write |
height | height: number; | Read and write |
marginOuter spacing on all four sides, in pixels. | margin: number; | Read and write |
marginTop | marginTop: number; | Read and write |
marginRight | marginRight: number; | Read and write |
marginBottom | marginBottom: number; | Read and write |
marginLeft | marginLeft: number; | Read and write |
alignSelf | alignSelf: RuntimeLayoutAlignSelf; | Read and write |
tabIndex | tabIndex: number; | Read and write |
backgroundColor | backgroundColor: string; | Read and write |
color | color: string; | Read and write |
borderColor | borderColor: string; | Read and write |
focus
methodfocus(options?: FocusOptions): void;show
methodshow(): void;hide
methodhide(): void;bindEvent
methodbindEvent(eventName: string, handler: WebComponentEventHandler<this> | null): () => void;emit
methodemit(eventName: string, detail?: unknown): boolean;Events
Link methods in Interaction. How to use events.
OnChange
Standard event (Event).
Signature and example
import type { WebComboBox } from '@webrad/runtime';
// Copy this method into the page class and link it in Interaction.
class Example {
public async ComboBox1Change(
sender: WebComboBox,
event: Event,
): Promise<void> {
console.log(sender.name, event.type);
}
}OnFocus
Standard event (Event).
Signature and example
import type { WebComboBox } from '@webrad/runtime';
// Copy this method into the page class and link it in Interaction.
class Example {
public async ComboBox1Focus(
sender: WebComboBox,
event: Event,
): Promise<void> {
console.log(sender.name, event.type);
}
}OnBlur
Standard event (Event).
Signature and example
import type { WebComboBox } from '@webrad/runtime';
// Copy this method into the page class and link it in Interaction.
class Example {
public async ComboBox1Blur(
sender: WebComboBox,
event: Event,
): Promise<void> {
console.log(sender.name, event.type);
}
}