How to filter server-side DropDownList data bound using async pipe?

Hello,

I have the following setup where data is bound to a DropDownList using async pipe.

Here is my service:

public get(state: any): void {
this.getListData(state).subscribe(x => super.next(x));
}

getListData(state: DataStateChangeEventArgs): Observable {
const options = this.getOptions(state);
return this.search(options);
}

private search(options): Observable<{}> {
return this.service.search(options)
.pipe(map((response: any) => {
return response['content'];
}),
catchError((err, caught) => {
console.error(err);
return of([]);
}));
}

Here is my component:

public data: Observable;
public fields: Object = { value: 'id', text: 'title' };
public state: DataStateChangeEventArgs;

constructor(public service: MyService) {
this.data = service;
}

ngOnInit(): void {
this.state = { skip: 0, take: AppConfig.gridDefaults.pageSize };
this.service.get(this.state);
}


Here is the html template:

<ejs-dropdownlist [dataSource]='data | async' [fields]='fields' [allowFiltering]="true" (filtering)="onFiltering($event)"></ejs-dropdownlist>

The data binding works well and the DropDownList gets populated with data.


What code is needed to filter the data? Filtering should take place server-side. Should I pass a predicate to the state property and call this.service.get again?

Can you provide a sample?

Thank you in advance,



1 Reply 1 reply marked as answer

UD UdhayaKumar Duraisamy Syncfusion Team December 30, 2022 06:48 AM UTC


Marked as answer
Loader.
Up arrow icon