Posted 15 March 2024, 4:23 am EST
I am trying to override the default dropdown values and it works fine but when I am trying to set autoComplete component for collumn editor field it seems it overwrite dataMap and getDisplayValues not working anymore:
editor = new AutoComplete(document.createElement(‘div’), {
itemsSource: col.dataMap.collectionView,
displayMemberPath: col.dataMap.displayMemberPath,
selectedValuePath: col.dataMap.selectedValuePath
});
<wj-flex-grid #grid [itemsSource]="data">
</wj-flex-grid>
data = [
{ name: ' United Kingdom (has space prefix)' },
{ name: 'United States of America (has space suffix) ' },
{ name: ' Japan (has spaces either side) ' },
{ name: 'United Republic of Somewhere' }
];
@ViewChild('grid', { static: true }) grid!: FlexGrid;
ngOnInit(): void {
this.grid.columns.clear();
const dataMap = new DataMap(this.data, 'name', 'name');
// Override the default dropdown values with custom values
dataMap.getDisplayValues = (currentRow?: any) => {
return ['test', 'test2'];
};
const column = new Column({
name: 'name',
header: 'Name',
binding: 'name',
editor: null,
dataMap: dataMap,
dataMapEditor: DataMapEditor.DropDownList,
dataType: DataType.String
});
this.grid.columns.push(column);
this.addAutoCompleteColumns();
}
private addAutoCompleteColumns(): void {
(this.grid.columns ?? []).forEach((col: Column) => {
if (col.dataMap) {
col.editor = new AutoComplete(document.createElement('div'), {
itemsSource: col.dataMap.collectionView,
displayMemberPath: col.dataMap.displayMemberPath,
selectedValuePath: col.dataMap.selectedValuePath
});
}
});
}