All Components

Controlling the State of the Options List

The DropDownList enables you to control the open and close state of its options list.

Configuration

To set the state of the list:

  1. Configure the initially opened component
  2. Prevent the emitted open and close events

You can also retrieve the current open state of the options list by using the isOpen getter.

Setting the Initially Opened Component

You can enable the user to manually toggle between the open and close state of the options list by setting the toggle method. If set to true, the method defines that the options list is open. If set to false, the method defines that the options list is closed.

The following example demonstrates how to configure an initially opened DropDownList.

import { Component, ViewChild, onInit } from '@angular/core';
@Component({
  selector: 'my-app',
  template: `
    <kendo-dropdownlist #dropdownlist [data]="listItems"></kendo-dropdownlist>
  `
})
class AppComponent implements onInit {
    @ViewChild("dropdownlist") public dropdownlist: any;
    public listItems: Array<string> = ["Albania", "Andorra", "Armenia", "Austria", "Azerbaijan"];

    public ngOnInit(): void {
        this.dropdownlist.toggle(true);
    }
}

Preventing Opening and Closing

The open and close events are emitted right before the options list is about to open or close. To prevent the corresponding action, call the preventDefault method of the event argument.

The following example demonstrates how to prevent the closing of the options list.

import { Component, ViewChild } from '@angular/core';
@Component({
  selector: 'my-app',
  template: `
    <kendo-dropdownlist #dropdownlist [data]="listItems" (close)="onClose($event)"></kendo-dropdownlist>
  `
})
class AppComponent {
    @ViewChild("dropdownlist") public dropdownlist: any;
    public listItems: Array<string> = ["Albania", "Andorra", "Armenia", "Austria", "Azerbaijan"];
    public onClose(event: any) {
        event.preventDefault();
        //Close the list if the component is no longer focused
        setTimeout(() => {
            if(!this.dropdownlist.wrapper.nativeElement.contains(document.activeElement)) {
                this.dropdownlist.toggle(false);
            }
        });
    }
}
In this article