New to KendoReactStart a free 30-day trial

Represents the props of the KendoReact MultiSelect component.

Definition

Package:@progress/kendo-react-dropdowns

Properties

Specifies the accessKey of the MultiSelect.

Example:
jsx
<MultiSelect accessKey="a" />

adaptive?

boolean

Providing different rendering of the popup element based on the screen dimensions.

Default:

false

Example:
jsx
<MultiSelect adaptive={true} />

Sets the value of the adaptive filtering input of the of MultiSelect.

Example:
jsx
<MultiSelect adaptiveFilter="Option" />

Specifies the text that is rendered as subtitle in the adaptive popup(action sheet). Applicable only when adaptive is set to true.

Example:
jsx
<MultiSelect adaptiveSubtitle="Adaptive Popup Subtitle" />

Specifies the text that is rendered as title in the adaptive popup(action sheet). Applicable only when adaptive is set to true. If not provided, the title will be the same as the label.

Example:
jsx
<MultiSelect adaptiveTitle="Adaptive Popup Title" />

Specifies whether the MultiSelect allows user-defined values that are not present in the dataset (see example). Defaults to false.

Example:
jsx
<MultiSelect allowCustom={true} />

Identifies the element(s) which will describe the component, similar to HTML aria-describedby attribute. For example these elements could contain error or hint message.

Example:
jsx
<MultiSelect ariaDescribedBy="description" />

Specifies the accessible label of the interactive component.

Example:
jsx
<MultiSelect ariaLabel="MultiSelect" />

Identifies the element(s) which will label the component.

Example:
jsx
<MultiSelect ariaLabelledBy="label" />

autoClose?

boolean

Determines whether to close the options list of the MultiSelect after the item selection is finished.

Example:
jsx
<MultiSelect autoClose={false} />

Controls whether checkboxes are rendered in the select-all header and in each list item. The checkbox state reflects the selected state of the items.

Default:

false

Example:
jsx
<MultiSelect selectAll={true} checkboxes={true} />

Sets additional classes to the MultiSelect.

Example:
jsx
<MultiSelect className="custom-class" />

data?

any[]

Sets the data of the MultiSelect (see example).

Example:
jsx
<MultiSelect data={['Option1', 'Option2', 'Option3']} />

Sets the key for comparing the data items of the MultiSelect (see example). If dataItemKey is not set, the MultiSelect compares the items by reference.

Example:
jsx
<MultiSelect dataItemKey="id" />

Sets the default value of the MultiSelect. Similar to the native select HTML element.

Example:
jsx
<MultiSelect defaultValue={['Option1']} />

dir?

string

Represents the dir HTML attribute.

Example:
jsx
<MultiSelect dir="rtl" />

disabled?

boolean

Sets the disabled state of the MultiSelect.

Example:
jsx
<MultiSelect disabled={true} />

fillMode?

"solid" | "flat" | "outline"

Configures the fillMode of the MultiSelect.

The available options are:

  • solid
  • flat
  • outline
Default:

undefined (theme-controlled)

Example:
jsx
<MultiSelect fillMode="flat" />

filter?

string

Sets the value of filtering input. Useful for making the filtering input a controlled component.

Example:
jsx
<MultiSelect filter="Option" />

Enables the filtering functionality of the MultiSelect (more information and examples).

Example:
jsx
<MultiSelect filterable={true} />

If set, the MultiSelect will use it to get the focused item index.

Default functionality returns the first item which starts with the input text.

Parameters:dataanyinputTextstringtextField?stringReturns:

number

Example:
jsx
const focusedItemIndex = (data, inputText, textField) => {
    let text = inputText.toLowerCase();
    return data.findIndex(item =>
        String(textField ? item[textField] : item).toLowerCase().includes(text));
};

<MultiSelect focusedItemIndex={focusedItemIndex} />

ReactNode

Sets the footer component of the MultiSelect (see example).

Example:
jsx
<MultiSelect footer={<div>Footer</div>} />

Sets the data item field that represents the start of a group. Applicable to objects data.

Example:
jsx
<MultiSelect groupField="category" />

Fires when a DropDownList's group header item is about to be rendered. Used to override the default appearance of the group's headers.

Parameters:liReactElement​<HTMLLIElement, string | JSXElementConstructor​<any>>itemPropsListGroupItemPropsReturns:

ReactNode

Example:
jsx
<MultiSelect groupHeaderItemRender={(li, itemProps) => <div>{itemProps.dataItem}</div>} />

Fires when a DropDownList's sticky group header item is about to be rendered. Used to override the default appearance of the sticky group header of the component.

Parameters:divReactElement​<HTMLDivElement, string | JSXElementConstructor​<any>>stickyHeaderPropsGroupStickyHeaderPropsReturns:

ReactNode

Example:
jsx
<MultiSelect groupStickyHeaderItemRender={(div, stickyHeaderProps) => <div>{stickyHeaderProps.dataItem}</div>} />

ReactNode

Sets the header component of the MultiSelect (see example).

Example:
jsx
<MultiSelect header={<div>Header</div>} />

id?

string

Specifies the id of the component.

Example:
jsx
<MultiSelect id="multi-select" />

inputAttributes?

InputHTMLAttributes​<HTMLInputElement>

Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.

Example:
jsx
<MultiSelect inputAttributes={{ maxLength: 10 }} />

Fires when a MultiSelect item is about to be rendered (see example). Used to override the default appearance of the list items.

Parameters:liReactElement​<HTMLLIElement, string | JSXElementConstructor​<any>>itemPropsListItemPropsReturns:

ReactNode

Example:
jsx
<MultiSelect itemRender={(li, itemProps) => <div>{itemProps.dataItem}</div>} />

label?

string

Renders a floating label for the MultiSelect.

Example:
jsx
<MultiSelect label="Select an option" />

Fires when the element which indicates no data in the popup is about to be rendered (see example). Used to override the default appearance of the element.

Parameters:elementReactElement​<HTMLDivElement, string | JSXElementConstructor​<any>>Returns:

ReactNode

Example:
jsx
<MultiSelect listNoDataRender={(element) => <div>No data available</div>} />

loading?

boolean

Sets the loading state of the MultiSelect (see example).

Example:
jsx
<MultiSelect loading={true} />

name?

string

Specifies the name property of the input DOM element.

This property is part of the FormComponentProps interface.

Fires each time the MultiSelect gets blurred.

Parameters:eventMultiSelectBlurEvent
Example:
jsx
<MultiSelect onBlur={(event) => console.log(event)} />

Fires each time the popup of the MultiSelect is about to cancel in (adaptive mode).

Parameters:eventMultiSelectCancelEvent
Example:
jsx
<MultiSelect onCancel={(event) => console.log(event)} />

Fires each time the value of the MultiSelect is about to change (see examples).

Parameters:eventMultiSelectChangeEvent
Example:
jsx
<MultiSelect onChange={(event) => console.log(event)} />

Fires each time the popup of the MultiSelect is about to close.

Parameters:eventMultiSelectCloseEvent
Example:
jsx
<MultiSelect onClose={(event) => console.log(event)} />

Fires each time the user types in the filter input (see example). You can filter the source based on the passed filtration value.

Parameters:eventMultiSelectFilterChangeEvent
Example:
jsx
<MultiSelect onFilterChange={(event) => console.log(event)} />

Fires each time the user focuses the MultiSelect.

Parameters:eventMultiSelectFocusEvent
Example:
jsx
<MultiSelect onFocus={(event) => console.log(event)} />

Fires each time the popup of the MultiSelect is about to open.

Parameters:eventMultiSelectOpenEvent
Example:
jsx
<MultiSelect onOpen={(event) => console.log(event)} />

Fires when both the virtual scrolling of the MultiSelect is enabled and when the component requires data for another page (see example).

Parameters:eventMultiSelectPageChangeEvent
Example:
jsx
<MultiSelect onPageChange={(event) => console.log(event)} />

Fires when the select-all item is clicked. When provided, the component delegates the select-all logic to the consumer. Useful for virtualization scenarios where the consumer manages the full dataset.

Parameters:eventMultiSelectSelectAllChangeEvent
Example:
jsx
<MultiSelect
    selectAll={true}
    onSelectAllChange={(event) => { setAllSelected(!allSelected); }}
/>

opened?

boolean

Sets the opened and closed state of the MultiSelect.

Example:
jsx
<MultiSelect opened={true} />

The hint that is displayed when the MultiSelect is empty.

Example:
jsx
<MultiSelect placeholder="Select an option" />

Configures the popup of the MultiSelect.

Example:
jsx
<MultiSelect popupSettings={{ animate: true }} />

prefix?

CustomComponent​<any>

Sets a custom prefix to the MultiSelect component.

Example:
jsx
<MultiSelect prefix={<span>Prefix</span>} />

required?

boolean

Specifies if null is a valid value for the component.

This property is part of the FormComponentProps interface.

rounded?

"small" | "medium" | "large" | "full" | "none"

Configures the roundness of the MultiSelect.

The available options are:

  • small
  • medium
  • large
  • full
Default:

undefined (theme-controlled)

Example:
jsx
<MultiSelect rounded="large" />

selectAll?

boolean

Controls whether a built-in Select all option appears at the top of the popup list. Selecting this option toggles all currently applicable items.

Default:

false

Example:
jsx
<MultiSelect selectAll={true} />

size?

"small" | "medium" | "large"

Configures the size of the MultiSelect.

The available options are:

  • small
  • medium
  • large
Default:

undefined (theme-controlled)

Example:
jsx
<MultiSelect size="small" />

Defines if MultiSelect's disabled items will be skipped or focused when navigating through the list of items using a keyboard. Defaults to true.

Example:
jsx
<MultiSelect skipDisabledItems={false} />

style?

CSSProperties

The styles that are applied to the MultiSelect.

Example:
jsx
<MultiSelect style={{ width: '300px' }} />

suffix?

CustomComponent​<any>

Sets a custom suffix to the MultiSelect component.

Example:
jsx
<MultiSelect suffix={<span>Suffix</span>} />

Specifies the maximum number of individual tag chips to display before showing a summary tag. When the number of selected items exceeds this value, the first summarizeAfter items are shown as individual chips and the remaining items are collapsed into a summary chip.

Default:

10

Example:
jsx
<MultiSelect summarizeAfter={5} />

tabIndex?

number

Specifies the tabIndex of the MultiSelect.

Example:
jsx
<MultiSelect tabIndex={0} />

Fires when a tag element is about to be rendered (see example). Used to override the default appearance of the element.

Parameters:tagDataTagDatatagReactElement​<any, string | JSXElementConstructor​<any>>Returns:

ReactElement​<any, string | JSXElementConstructor​<any>>

Example:
jsx
<MultiSelect tagRender={(tagData, tag) => <span>{tagData.text}</span>} />

Sets the tags of the MultiSelect (see example).

Example:
jsx
<MultiSelect tags={[{ text: 'Tag1' }, { text: 'Tag2' }]} />

Sets the data item field that represents the item text (see example). If the data contains only primitive values, do not define it.

Example:
jsx
<MultiSelect textField="name" />

valid?

boolean

Overrides the validity state of the component. If valid is set, the required property will be ignored.

This property is part of the FormComponentProps interface.

Controls the form error message of the component. If set to an empty string, no error will be thrown.

This property is part of the FormComponentProps interface.

If set to false, no visual representation of the invalid state of the component will be applied.

This property is part of the FormComponentProps interface.

value?

any[]

Sets the value of the MultiSelect (see example). It can either be of the primitive (string, numbers) or of the complex (objects) type.

Example:
jsx
<MultiSelect value={['Option1', 'Option2']} />

Configures the virtual scrolling of the MultiSelect (see example).

Example:
jsx
<MultiSelect virtual={{ pageSize: 20 }} />

webMcp?

boolean | WebMcpProps

Enables Web MCP tool registration for this component. Requires a parent WebMcpProvider from @progress/kendo-react-webmcp.