<kendo-treelist
class="kendo-treelist"
[kendoTreeListFlatBinding]="data"
#directive="kendoTreeListFlatBinding"
[rowClass]="dynamicClass"
[parentIdField]="parentIdField"
[idField]="idField"
kendoTreeListExpandable
kendoTreeListSelectable
[rowReorderable]="true"
(cellClick)="onCellClick($event)"
[itemKey]="idField"
[(selectedItems)]="selected"
[(expandedKeys)]="expandedIds"
[isExpanded]="isExpanded"
(expand)="onExpand($event)"
(collapse)="onCollapse($event)"
(rowReorder)="onRowReorder($event)"
[loading]="data.length == 0"
>
<kendo-treelist-rowreorder-column [width]="25"></kendo-treelist-rowreorder-column>
<kendo-treelist-column
*ngFor="let column of treeListOptions.columns"
[field]="column.field"
[expandable]="column.expandable"
[title]="column.title"
[width]="column.width">
<ng-template *ngIf="column.ngTemplate" kendoTreeListCellTemplate let-dataItem let-rowIndex="rowIndex">
<!-- Context values will be accessible for column customization on the parent component. -->
<ng-container *ngTemplateOutlet="template; context: { dataItem, rowIndex, column }"></ng-container>
</ng-template>
</kendo-treelist-column>
</kendo-treelist>
Hi,
I am using Kendo Treelist Angular with 'kendoTreeListFlatBinding'. Mock data is also attached. There could be multiple folders and each folder can have multiple templates in it. I want to use row-reorder on my tree-list component.
After enabling rowreorder. I have following scenarios to deal with:
I have a component with kendo-dropdownlist and kendo-multiselect. When I expand the multi-select and then try to expand the dropdown, the multiselect popup item list is not closed automatically. Clicking outside however, closes both popups.
I think this is because of the stop propagation on kendo-dropdownlist onBlur and onFocus methods. Please advise.
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 set the value of a kendo-combobox inside an angular form using code after receive the value from a webservice.
<form class="k-form" [formGroup]="usrForm">
<kendo-combobox #formContractor formControlName="formCity" [data]="cities"
textField="name" valueField="id" (valueChange)="ControlValueChange($event)" [clearButton]="true">
</kendo-combobox>
</form>I have tried to set the value using object (my desire) or primitive value but the value is alwais null.
this.usrForm.controls['formCity'].setValue(newCityObj);
this.usrForm.controls['formCity'].patchValue(newCityObj);
this.usrForm.patchValue({formCity: newCityObj});buth the control alwais remain blank,
if I show the form value in the console:
console.log(this.usrForm.value);
the formCity value is set but the value in the kendo-combobox are not displayed (kombo text remain blank)
I have see a lot of documentation and sample on read the value...but nothing about the set value by code.
Thanks
Maurizio
I am using the WindowService to open a window and passing in a template for the content. Once the user performs their action within the window, I want to close it.
I tried adding
public window : WindowRefto my constructor, but this threw an error, 'No provider for WindowRef'
Using formBuilder to create a reactive form when I noticed that it turns array properties in to the first object in the array. This is breaking my multiselect drop down as it is expecting an array.
I create a stack blitz demonstration.
https://stackblitz.com/edit/angular-bnet6z?file=src%2Fapp%2Fapp.component.ts
This is based off of you https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselect/forms/#toc-reactive-forms demonstration where I changed the form building to use the form builder.
Multiselect then reports these errors.
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
I want to hide the toolbar that is framed in red. How can it be done?