The custom template, if any, that should be used when rendering the ADD BUTTON in the combo drop down
// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.addItemTemplate = myCustomTemplate;
<!-- Set in markup -->
<igx-combo #combo>
...
<ng-template igxComboAddItem>
<button type="button" igxButton="contained" class="combo__add-button">
Click to add item
</button>
</ng-template>
</igx-combo>
Emitted when an item is being added to the data collection
<igx-combo (addition)='handleAdditionEvent($event)'></igx-combo>
Controls whether custom values can be added to the collection
// get
let comboAllowsCustomValues = this.combo.allowCustomValues;
<!--set-->
<igx-combo [allowCustomValues]='true'></igx-combo>
Sets aria-labelledby attribute value.
<igx-combo [ariaLabelledBy]="'label1'">
The custom template, if any, that should be used when rendering the combo CLEAR button
// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.clearIconTemplate = myCustomTemplate;
<!-- Set in markup -->
<igx-combo #combo>
...
<ng-template igxComboClearIcon>
<igx-icon>clear</igx-icon>
</ng-template>
</igx-combo>
Emitted after the dropdown is closed
<igx-combo (closed)='handleClosed($event)'></igx-combo>
Emitted before the dropdown is closed
<igx-combo (closing)='handleClosing($event)'></igx-combo>
Emitted when new chunk of data is loaded from the virtualization
<igx-combo (dataPreLoad)='handleDataPreloadEvent($event)'></igx-combo>
Disables the combo. The default is false
.
<igx-combo [disabled]="'true'">
The custom template, if any, that should be used when rendering the ADD BUTTON in the combo drop down
// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.emptyTemplate = myCustomTemplate;
<!-- Set in markup -->
<igx-combo #combo>
...
<ng-template igxComboEmpty>
<div class="combo--empty">
There are no items to display
</div>
</ng-template>
</igx-combo>
Gets/Sets the custom filtering function of the combo.
The custom template, if any, that should be used when rendering the FOOTER for the combo items list
// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.footerTemplate = myCustomTemplate;
<!-- Set in markup -->
<igx-combo #combo>
...
<ng-template igxComboFooter>
<div class="combo__footer">
This is a custom footer
</div>
</ng-template>
</igx-combo>
The custom template, if any, that should be used when rendering HEADER ITEMS for groups in the combo list
// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.headerItemTemplate = myCustomTemplate;
<!-- Set in markup -->
<igx-combo #combo>
...
<ng-template igxComboHeaderItem let-item let-key="groupKey">
<div class="custom-item--group">Group header for {{ item[key] }}</div>
</ng-template>
</igx-combo>
The custom template, if any, that should be used when rendering the HEADER for the combo items list
// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.headerTemplate = myCustomTemplate;
<!-- Set in markup -->
<igx-combo #combo>
...
<ng-template igxComboHeader>
<div class="combo__header">
This is a custom header
</div>
</ng-template>
</igx-combo>
The custom template, if any, that should be used when rendering ITEMS in the combo list
// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.itemTemplate = myCustomTemplate;
<!-- Set in markup -->
<igx-combo #combo>
...
<ng-template igxComboItem let-item let-key="valueKey">
<div class="custom-item">
<div class="custom-item__name">{{ item[key] }}</div>
<div class="custom-item__cost">{{ item.cost }}</div>
</div>
</ng-template>
</igx-combo>
Configures the drop down list width
// get
let myComboItemsWidth = this.combo.itemsWidth;
<!--set-->
<igx-combo [itemsWidth] = '"180px"'></igx-combo>
Emitted after the dropdown is opened
<igx-combo (opened)='handleOpened($event)'></igx-combo>
Emitted before the dropdown is opened
<igx-combo opening='handleOpening($event)'></igx-combo>
Set custom overlay settings that control how the combo's list of items is displayed. Set:
<igx-combo [overlaySettings]="customOverlaySettings"></igx-combo>
const customSettings = { positionStrategy: { settings: { target: myTarget } } };
combo.overlaySettings = customSettings;
Get any custom overlay settings used by the combo:
const comboOverlaySettings: OverlaySettings = myCombo.overlaySettings;
Defines the placeholder value for the combo value field
// get
let myComboPlaceholder = this.combo.placeholder;
<!--set-->
<igx-combo [placeholder]='newPlaceHolder'></igx-combo>
Emitted when the value of the search input changes (e.g. typing, pasting, clear, etc.)
<igx-combo (searchInputUpdate)='handleSearchInputEvent($event)'></igx-combo>
Emitted when item selection is changing, before the selection completes
<igx-simple-combo (selectionChanging)='handleSelection()'></igx-simple-combo>
Defines whether the caseSensitive icon should be shown in the search input
// get
let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
<!--set-->
<igx-combo [showSearchCaseIcon]='true'></igx-combo>
The custom template, if any, that should be used when rendering the combo TOGGLE(open/close) button
// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.toggleIconTemplate = myCustomTemplate;
<!-- Set in markup -->
<igx-combo #combo>
...
<ng-template igxComboToggleIcon let-collapsed>
<igx-icon>{{ collapsed ? 'remove_circle' : 'remove_circle_outline'}}</igx-icon>
</ng-template>
</igx-combo>
Determines which column in the data source is used to determine the value.
// get
let myComboValueKey = this.combo.valueKey;
<!--set-->
<igx-combo [valueKey]='myKey'></igx-combo>
Sets the style width of the element
// get
let myComboWidth = this.combo.width;
<!--set-->
<igx-combo [width]='250px'></igx-combo>
Gets drop down state.
let state = this.combo.collapsed;
Combo data source.
<!--set-->
<igx-combo [data]='items'></igx-combo>
Determines which column in the data source is used to determine the display value.
// get
let myComboDisplayKey = this.combo.displayKey;
// set
this.combo.displayKey = 'val';
<!--set-->
<igx-combo [displayKey]='myDisplayKey'></igx-combo>
The text displayed in the combo input
// get
let comboDisplayValue = this.combo.displayValue;
Configures the way combo items will be filtered.
// get
let myFilteringOptions = this.combo.filteringOptions;
<!--set-->
<igx-combo [filteringOptions]='myFilteringOptions'></igx-combo>
The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].
// get
let currentGroupKey = this.combo.groupKey;
The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].
<!--set-->
<igx-combo [groupKey]='newGroupKey'></igx-combo>
Sets groups sorting order.
<igx-combo [groupSortingDirection]="groupSortingDirection"></igx-combo>
public groupSortingDirection = SortingDirection.Asc;
Gets/gets combo id.
// get
let id = this.combo.id;
<!--set-->
<igx-combo [id]='combo1'></igx-combo>
Configures the drop down list item height
// get
let myComboItemHeight = this.combo.itemHeight;
<!--set-->
<igx-combo [itemHeight]='32'></igx-combo>
Configures the drop down list height
// get
let myComboItemsMaxHeight = this.combo.itemsMaxHeight;
<!--set-->
<igx-combo [itemsMaxHeight]='320'></igx-combo>
Gets/Sets the resource strings.
Get current selection state
Gets total count of the virtual data items, when using remote service.
// get
let count = this.combo.totalItemCount;
Sets total count of the virtual data items, when using remote service.
// set
this.combo.totalItemCount(remoteService.count);
Sets the visual combo type.
The allowed values are line
, box
, border
and search
. The default is box
.
<igx-combo [type]="'line'">
Gets if control is valid, when used in a form
// get
let valid = this.combo.valid;
Sets if control is valid, when used in a form
// set
this.combo.valid = IgxInputState.INVALID;
The value of the combo
// get
let comboValue = this.combo.value;
Defines the current state of the virtualized data. It contains startIndex
and chunkSize
// get
let state = this.combo.virtualizationState;
Sets the current state of the virtualized data.
// set
this.combo.virtualizationState(state);
Represents a drop-down list that provides filtering functionality, allowing users to choose a single option from a predefined list.
Igx Module
IgxSimpleComboModule
Igx Theme
igx-combo-theme
Igx Keywords
combobox, single combo selection
Igx Group
Grids & Lists
Remarks
It provides the ability to filter items as well as perform single selection on the provided data. Additionally, it exposes keyboard navigation and custom styling capabilities.
Example