Loading...
Loading...
Implement the Syncfusion Angular DropDownList component for single-value selection from a predefined list. Use this when building dropdown selectors, searchable dropdowns, filtered lists, grouped options, or cascading dropdowns. This skill covers data binding, filtering, templates, grouping, virtualization, form integration, styling, and API usage with @syncfusion/ej2-angular-dropdowns.
npx skill4agent add syncfusion/angular-ui-components-skills syncfusion-angular-drop-down-list@syncfusion/ej2-angular-dropdowns<ejs-dropdownlist>[dataSource][(value)][fields]DataManagerallowObjectBinding[allowFiltering]filteringupdateData()containsstartsWithendsWithgroupBy[enableVirtualization]fields.disableddisableItem()[enabled]="false"[(ngModel)]FormControlFormGroupL10nimport { Component, OnInit } from '@angular/core';
import { DropDownListModule } from '@syncfusion/ej2-angular-dropdowns';
@Component({
standalone: true,
imports: [DropDownListModule],
selector: 'app-root',
template: `
<ejs-dropdownlist
id="ddl"
[dataSource]="sports"
[fields]="fields"
placeholder="Select a sport"
[(value)]="selectedValue"
(change)="onChange($event)">
</ejs-dropdownlist>
<p>Selected: {{ selectedValue }}</p>
`
})
export class AppComponent implements OnInit {
public sports: { id: number; name: string }[] = [];
public fields = { text: 'name', value: 'id' };
public selectedValue: number = 2;
ngOnInit() {
this.sports = [
{ id: 1, name: 'Badminton' },
{ id: 2, name: 'Cricket' },
{ id: 3, name: 'Football' },
{ id: 4, name: 'Tennis' }
];
}
onChange(args: any) {
console.log('Selected value:', args.value);
}
}// Enable filtering in template
// <ejs-dropdownlist [allowFiltering]="true" (filtering)="onFilter($event)">
import { FilteringEventArgs } from '@syncfusion/ej2-angular-dropdowns';
import { Query } from '@syncfusion/ej2-data';
onFilter(args: FilteringEventArgs) {
let query = new Query();
query = args.text !== ''
? query.where('name', 'contains', args.text, true)
: query;
args.updateData(this.sports, query);
}import { DataManager, ODataV4Adaptor, Query } from '@syncfusion/ej2-data';
public remoteData: DataManager = new DataManager({
url: 'https://services.odata.org/V4/Northwind/Northwind.svc/Customers',
adaptor: new ODataV4Adaptor(),
crossDomain: true
});
public remoteQuery = new Query().select(['CustomerID', 'ContactName']).take(6);
public remoteFields = { text: 'ContactName', value: 'CustomerID' };
// Template: <ejs-dropdownlist [dataSource]="remoteData" [query]="remoteQuery" [fields]="remoteFields">import { FormBuilder, FormGroup, Validators, ReactiveFormsModule } from '@angular/forms';
import { DropDownListModule } from '@syncfusion/ej2-angular-dropdowns';
// In component:
form = this.fb.group({ sport: ['Cricket', Validators.required] });
// In template:
// <form [formGroup]="form">
// <ejs-dropdownlist formControlName="sport" [dataSource]="sports"></ejs-dropdownlist>
// </form>| Property | Type | Description |
|---|---|---|
| | Data for the list |
| | Maps text, value, groupBy, disabled, iconCss |
| | Selected value (supports two-way binding) |
| | Input placeholder text |
| | Enable search box in popup |
| | Filter match strategy |
| | Virtual scrolling for large lists |
| | Popup dimensions |
| | Enable/disable entire component |
| | Bind full object as value |
| | Case-insensitive filtering (default: true) |
| | Diacritics-insensitive filtering |
| | Delay (ms) before filter triggers |
| | Template for list items |
| | Template for selected value display |
| | Empty state message |
[enableVirtualization]="true"