Мне нужна помощь с кодом в filterChange - он отлично работает, когда я пытаюсь отфильтровать строку, но не работает с числами. Я даже пытался объявить число как строку, но все равно не работает. Итак, 1-й пример, который у меня есть, - это то, где он работает (Регионы), но не работает для выпадающего списка (Lobs), который у меня следующий. Я новичок в машинописи, пожалуйста, руководство.
//model for Region
export class SelectedRegionItem {
public RegionMasterID: number;
public Region: string;
}
//HTML for 'Region' Kendo-dropdownlist
<kendo-dropdownlist id="SelectRegion" name="SelectRegion"
style="width:125px"
[(ngModel)]="SelectRegion"
[defaultItem]="defaultRegion"
[data]="regions"
[filterable]="true"
[valueField]="'RegionMasterID'"
[textField]="'Region'"
(valueChange)="handleRegionChange($event)"
(filterChange)="handleRegionFilter($event)">
</kendo-dropdownlist>
//filter code for Region dropdown. Works fine!
public regions: Array<any> = [];
public regionsFull: Array<any> = [];
public SelectRegion: SelectedRegionItem;
public defaultRegion: { RegionMasterID: number, Region: string } = { RegionMasterID: null, Region: 'Select Region' };
public handleRegionFilter(value) {
this.regions = this.regionsFull.filter((s) => s.Region.toLowerCase().indexOf(value.toLowerCase()) !== -1);
if (this.regions.length == 0 && value == '') {
this.regions = this.regionsFull;
}
}
Это код для выпадающего списка «LOB». Поиск, который не работает, так как это поиск номера. Я попытался сделать Id-номер, а также строку, но ни один не работает. Я получаю ошибку
Ошибка типа: s.Id.indexOf не является функцией
//Model for
export class SelectedLOBItem {
public Id: string;
}
/Html same as above
<kendo-dropdownlist id="SelectLOB" name="SelectLOB"
style="width:125px"
[(ngModel)]="SelectLOB"
[defaultItem]="defaultLOB"
[data]="lobs"
[filterable]="true"
[valueField]="'Id'"
[textField]="'Id'"
(filterChange)="handleLobFilter($event)">
</kendo-dropdownlist>
//filter code
public lobs: Array<any> = [];
public lobsFull: Array<any> = [];
public SelectLOB: SelectedLOBItem;
public defaultLOB: { Id: string } = { Id: 'Select LOBMasterID' };
//this code does not work
public handleLobFilter(value) {
//NOT Working
this.lobs = this.lobsFull.filter((s) => s.Id.indexOf(value) !== -1);
if (this.lobs.length == 0 && value == '') {
this.lobs = this.lobsFull;
}
}