[selectable]="{enable: true, mode: 'multiple'}"
I've prepared kendo grid with multiselection and everything was fine until I updated kendo packages:
Old versions:
"@progress/kendo-angular-buttons": "^5.5.2", "@progress/kendo-angular-common": "^1.0.0", "@progress/kendo-angular-dateinputs": "^4.3.2", "@progress/kendo-angular-dialog": "^4.2.3", "@progress/kendo-angular-dropdowns": "^5.5.0", "@progress/kendo-angular-editor": "^1.2.4", "@progress/kendo-angular-excel-export": "^3.1.5", "@progress/kendo-angular-grid": "^4.8.4", "@progress/kendo-angular-inputs": "^6.4.0", "@progress/kendo-angular-intl": "^2.0.4", "@progress/kendo-angular-l10n": "^2.0.0", "@progress/kendo-angular-label": "^2.3.3", "@progress/kendo-angular-layout": "^4.2.0", "@progress/kendo-angular-listview": "^0.2.0", "@progress/kendo-angular-menu": "^2.0.4", "@progress/kendo-angular-notification": "^2.1.3", "@progress/kendo-angular-pager": "^1.0.0", "@progress/kendo-angular-pdf-export": "^2.0.4", "@progress/kendo-angular-popup": "^3.0.0", "@progress/kendo-angular-progressbar": "^1.0.0", "@progress/kendo-angular-toolbar": "^3.2.1", "@progress/kendo-angular-tooltip": "^3.0.0", "@progress/kendo-angular-treelist": "^2.0.0", "@progress/kendo-angular-treeview": "^5.4.2", "@progress/kendo-angular-upload": "^6.1.0", "@progress/kendo-data-query": "^1.5.4", "@progress/kendo-drawing": "^1.5.12", "@progress/kendo-theme-default": "^4.23.0", "@progress/kendo-licensing": "^1.2.1",
After update operation:
"@progress/kendo-angular-buttons": "^8.0.0", "@progress/kendo-angular-common": "^3.1.0", "@progress/kendo-angular-dateinputs": "^7.0.1", "@progress/kendo-angular-dialog": "^7.1.2", "@progress/kendo-angular-dropdowns": "^7.0.2", "@progress/kendo-angular-editor": "^4.1.3", "@progress/kendo-angular-excel-export": "^5.0.1", "@progress/kendo-angular-grid": "^7.2.3", "@progress/kendo-angular-inputs": "^9.0.3", "@progress/kendo-angular-intl": "^4.1.0", "@progress/kendo-angular-l10n": "^4.0.0", "@progress/kendo-angular-label": "^4.0.0", "@progress/kendo-angular-layout": "^7.1.0", "@progress/kendo-angular-listview": "^4.0.0", "@progress/kendo-angular-menu": "^4.0.0", "@progress/kendo-angular-notification": "^4.0.0", "@progress/kendo-angular-pager": "^4.0.1", "@progress/kendo-angular-pdf-export": "^4.0.0", "@progress/kendo-angular-popup": "^5.0.0", "@progress/kendo-angular-progressbar": "^3.0.0", "@progress/kendo-angular-toolbar": "^6.0.2", "@progress/kendo-angular-tooltip": "^4.0.1", "@progress/kendo-angular-treelist": "^5.0.3", "@progress/kendo-angular-treeview": "^7.1.0", "@progress/kendo-angular-upload": "^9.0.2", "@progress/kendo-data-query": "^1.6.0", "@progress/kendo-drawing": "^1.16.3", "@progress/kendo-theme-default": "^5.5.0", "@progress/kendo-licensing": "^1.2.2",
My Kendo Grid properties:
<kendo-grid
[selectable]="selectableSettings"
(selectedKeysChange)="keyChange($event)"
kendoGridSelectBy="id"
[selectedKeys]="mySelection"
>
Before update everything was fine I mean, I had correct objects (ids) into mySelection array number property.
Defined property into component:
mySelection: number[] = [];
Selectable settings:
this.selectableSettings = { checkboxOnly: true, mode: "multiple" };
KeyChange method:
keyChange(e){ this.closeEditor(); if(e.length > 0) { this.isSelectionDisabled = false; } else { this.isSelectionDisabled = true; } this.extractDataItems = []; this.extract(); }
Extract method:
extract() { this.mySelection.forEach(idx => { this._subs.add( this.timeBookings$.pipe( map(items => items.find(item => item.id === idx) )).subscribe(r => { if(this.mySelection.length > 0 && r) { this.extractDataItems.push(r); } }) ); }); }
Important!
When I'm selecting some rows - mySelection is always empty.
I know that in keyChange(e) method I can do something like:
this.mySelection = e;
Parameter of:
keyChange(e) - parameter e has correct value all the time
Hi, I'm trying to create a multi-select item that will have the outside look & behavior of a simple dropdown-list, including using icon of my choosing for the down arrow.
But I'm having trouble locating the icon, I've tried using plain css and play with the positions of the items, but then the icon doesn't stick to the corner of the multi-select wrapper..
Would like some help, I feel like maybe I'm doing it all wrong.
Here is my code:
https://stackblitz.com/edit/angular-kendo-multi-dropdown-look
Hello,
I'm trying to add placeholder text in a multiselecttree element but when nothing is selected I'm not seeing the placeholder text. I'm pretty sure this should be supported, I tried using the same placeholder in a multiselect element and it's working fine.
Am I missing something else here or are placeholders not allowed in multitreeselect?
Here's the code I pulled from the docs site for testing each placeholder: codesandbox_link
Any help is appreciated. Thanks!
https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/
export class CustomMultiSelectFilterComponent implements AfterViewInit {
@Output() public handleFilterChange = new EventEmitter<CompositeFilterDescriptor>()
@Input() public data: string[] = []
@Input() public textField: string = ""
@Input() public valueField: string = ""
@Input() public filter: CompositeFilterDescriptor = { logic: "or", filters: [] }
@Input() public preFilterValue: string | null = null
@Input() public filterService: FilterService
@Input() public currentFilter: CompositeFilterDescriptor = { logic: "or", filters: [] }
public constructor(
filterService: FilterService
) {
this.filterService = filterService
}
public filterChange(filter: CompositeFilterDescriptor): void {
this.filter = filter
this.data = filterBy(this.data , filter)
this.handleFilterChange.emit(filter)
}
public onChange(values: string[], filterService: FilterService): void {
filterService.filter({
filters: values.map((value) => ({
field: this.valueField,
operator: "contains",
value,
})),
logic: "or",
})
}
public ngAfterViewInit(): void {
if (this.filterService) {
this.filterService.changes.subscribe((filter: CompositeFilterDescriptor) => {
this.currentFilter = filter
console.log("Current Filters:", this.currentFilter)
})
}
}
}
<kendo-multiselect
[data]="data"
[valuePrimitive]="true"
[textField]="textField"
[valueField]="valueField"
[value]="filter | filterValues"
(valueChange)="onChange($event, filterService)"
>
</kendo-multiselect>
<kendo-grid
kendoGridSelectBy="id"
[kendoGridBinding]="users"
filterable="menu"
[sortable]="true"
[resizable]="true"
(selectionChange)="selectionChange($event)"
[selectable]="selectableSettings"
[selectedKeys]="[selectedKeyArray]"
(filterChange)="handleFilterChange($event)"
[filter]="filter"
>
<kendo-grid-column-group title="{{ 'literal:Users | Total:' | translate }} {{ users.length }}" [columnMenu]="true">
<kendo-grid-column field="roles" title="{{ 'literal:Roles' | translate }}" [width]="220" [headerStyle]="{ 'font-weight': 'bold' }">
<ng-template kendoGridFilterMenuTemplate let-filter="filter" let-filterService="filterService">
<app-custom-multiselect-filter
[data]="rolesToFilter"
textField="rolesToFilter"
valueField="filterRoles"
[preFilterValue]="preFilter"
[filterService]="filterService"
[currentFilter]="filter"
>
</app-custom
Hello,
I need to highlight using a css the filtered strings in a kendo ui multiselect for angular.
Is there an option for this?
Thanks