Telerik Forums
Kendo UI for Angular Forum
1 answer
9 views

Hi,

Every release when we get the latest version of Kendo, I download the Kendo License from telerik web site and it worked. This release how ever, it is still complaining that the license is expired.

I did follow all the steps mentioned in your web site. But when I bring up our UI we see this error.

We are in the process of upgrading Angular and this is very crucial for us. Please let me know how to resolve this issue.

Here is the details in the console.

My license is valid till November 2025.

 

Regards,

Jyothi

Hetali
Telerik team
 answered on 11 Jul 2025
1 answer
5 views
I am trying to use kendo-grid for angular on iOS (tablets) with kendo grid for angular.
I've noticed that grids dont show the context when pressing and holding on a line. I looked and saw that this was asked before, and wanted to know if there is a native solution for this. 
This theard:
https://www.telerik.com/forums/kendo-grid-context-menus-do-not-work-on-iphone-(ios-version-%3D-13)
Zornitsa
Telerik team
 answered on 11 Jul 2025
1 answer
4 views
Hi Telerik Team,

I'm currently using the <kendo-contextmenu> (@progress/kendo-angular-menu v15.3.0.) component in an Angular application, and I'm binding menu items dynamically using the [items] input.

I would like to conditionally disable a specific menu item based on a boolean variable. However, I’ve found that the disabled property on a MenuItem is not respected when using data-binding mode.


What I've tried so far:
Adding disabled: true and cssClass in the item definition

Using kendoContextMenuItemTemplate with custom ngClass to style the item

Preventing the (select) event manually

Styling with pointer-events: none

Injecting disabled attribute at runtime using requestAnimationFrame as a workaround

Problem:
None of the above approaches allow me to truly disable the menu item (i.e., prevent interaction at the <li> level) via a clean Angular-style directive or binding.

Question:

Is there an officially supported way (or recommended workaround) to disable items in a Kendo Angular ContextMenu when using the [items] binding?

If not currently supported, is this on the roadmap?

Any guidance or alternatives would be greatly appreciated.

Thank you!
Martin Bechev
Telerik team
 answered on 11 Jul 2025
1 answer
7 views
While working and testing on android using a grid, I've ran into an issue with multiple row selection. I define the grid as:
[selectable]="{enable: true, mode: 'multiple'}"
This works on PC, and on iOS (via the two-finger gesture). On android this does not work, as the gesture doesn't exist.
What is the best way the handle this issue? Add a checkbox column for android so users select multiple rows using the checkbox? define a custom gesture and try to handle it?
Yanmario
Telerik team
 answered on 11 Jul 2025
1 answer
7 views

In my application we display all dates in UTC regardless of user's timezone. We use angular reactive forms and will have our kendo date picker mapped to a formControlName - eg 'fiscalYearEnd'.

The value for fiscalYearEnd in my json is  eg '2025-07-09'.

If I then  populate this date field with this.form.get('fiscalYearEnd').setValue(new Date(json.fiscalYearEnd)) then if the user is in eg New York, ie EST timezone, then they will see 2025-07-08 as the value in the date picker.

I've also tried other approaches - eg 

this.form.get('fiscalYearEnd').setValue(new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate())));

Whatever I try, if the timezone is EST the date picker will display the previous day.

What am I doing wrong?

 

 

 

Martin Bechev
Telerik team
 answered on 11 Jul 2025
1 answer
9 views

hi,

i am looking the below topic:

https://www.telerik.com/kendo-angular-ui/components/grid/scroll-modes/virtual

the web page says :

While the user is scrolling the table, the Angular Grid requests and displays only the visible pages. 

my question is:

how to scroll the table by codes?

for example ,i want to scroll the table making the data which id is 10254 visiable,

please tell me how to do this

thank you.

 

 

Martin Bechev
Telerik team
 answered on 10 Jul 2025
0 answers
6 views

Hi,

Is it possible when using the autocomplete to not show the popup when there is no data available. I'm aware that there's the no-data template but that still shows the popup even if nothing is attached.

I was considering using the open/close event functionality which might work but I don't think it fully suits the use case.

The scenarios are as follows

1. Start Typing and item found -> show popup
2. Start Typing and no item found -> don't show popup
3. Popup open and we type until no item found -> don't show popup

Any help on this would be appreciated! 

Ian
Top achievements
Rank 1
 asked on 09 Jul 2025
1 answer
10 views

Verified active Kendo UI license in Telerik account. Downloaded telerik-license.txt and placed it in the project root.Installed @progress/kendo-licensing via npm install --save. Activated the license with npx kendo-ui-license activate.Confirmed all steps work locally.Encountering build error during OpenShift pipeline build after adding license.

Error: EACCES: permission denied, open '/opt/app-root/src/webapp/node_modules/@progress/kendo-licensing/dist/index.mjs'
    at Object.openSync (fs.js:498:3)
    at Object.writeFileSync (fs.js:1529:35)
    at /opt/app-root/src/webapp/node_modules/@progress/kendo-licensing/bin/kendo-ui-license.js:2:47542
    at Array.forEach (<anonymous>)
    at setRuntimeLicense (/opt/app-root/src/webapp/node_modules/@progress/kendo-licensing/bin/kendo-ui-license.js:2:47301)
    at main (/opt/app-root/src/webapp/node_modules/@progress/kendo-licensing/bin/kendo-ui-license.js:2:63927)
    at async /opt/app-root/src/webapp/node_modules/@progress/kendo-licensing/bin/kendo-ui-license.js:2:64408 {
  errno: -13,
  syscall: 'open',
  code: 'EACCES',
  path: '/opt/app-root/src/webapp/node_modules/@progress/kendo-licensing/dist/index.mjs'
}
[ERROR][Telerik and Kendo UI Licensing] Error while importing license.
Martin Bechev
Telerik team
 answered on 09 Jul 2025
2 answers
17 views

 

We have applications upgraded from Angular 15 version to 19.2.14 version and Telerik from 11 to 19.1.1 version. After upgrade, we identified that all icons are missing or not rendered properly.

While searching regarding the issue, we can across Icons not showing after update in Kendo UI for Angular | Telerik Forums. So, started migrating all font icons to svg icons.

Few icons bare available in Angular Icons SVGIcon SVGIcon List - Kendo UI for Angularand able to use it.

But few font icons are not available in svg icons as below

class="k-icon k-i-loading"
class="k-icon workIcon"
class="k-icon k-i-error"
class="k-icon k-i-dictionary-add"
class="k-icon k-i-email .k-i-envelop.k-i-letter"


class="k-icon informationIcon" 
.informationIcon:before 
{
    content: "\e401"; 
}


Then please let us know what the correct approach is to upgrade these icons.

Rajesh
Top achievements
Rank 1
Iron
 answered on 04 Jul 2025
0 answers
9 views

I am trying to ensure that only leaf (child) nodes can be selected in the Kendo DropDownTree for Angular. If a parent node is clicked, the selection should be cleared and the input should display as empty (no value/placeholder).

What I am experiencing:

  • After selecting a child node (leaf), the value is set correctly.

  • If I later click a parent node, I set value = null in the valueChange event handler.

  • However, when I close and reopen the dialog containing the DropDownTree, the input always shows the last selected child (even though value is null).

  • The value for the input box is not showing null; the last valid child selection keeps coming back after reopening.

Summary of what I have tried:

  • Handled valueChange to only accept leaf node selections and set value = null for parents.

     

  • Verified that value is null when closing the dialog.

Expected behavior:
When a parent node is clicked, any selection should be cleared, and upon reopening the dialog, the DropDownTree input should remain empty (showing no last selection).

Actual behavior:
After clicking a parent and setting value = null, closing and reopening the dialog always shows the last selected child in the DropDownTree input.





<mnp-dialog
    class="feedback-dialog-wrapper"
    [width]="width"
    [height]="height"
    [isOpen]="isOpen"
    [title]="confirmationTitle"
    (close)="close()">
    <div class="feedback">
        <div>{{ confirmationMessage }}</div>
        <div class="k-form-field-wrap">
            <kendo-dropdowntree
                kendoDropDownTreeExpandable
                [kendoDropDownTreeHierarchyBinding]="data"
                childrenField="items"
                textField="text"
                valueField="id"
                [valuePrimitive]="true"
                [(value)]="value"
                [filterable]="true"
                (valueChange)="onValueChange($event)"
                (close)="closeEvent($event)"
                >
                <ng-template kendoDropDownTreeValueTemplate let-dataItem>
                    <ng-container *ngIf="!dataItem?.items || dataItem?.items.length === 0">
                        <span class="template">{{ dataItem?.text }}</span>
                    </ng-container>
                </ng-template>
                <ng-template kendoDropDownTreeNodeTemplate let-dataItem let-index="index">
                    <span
                        [ngClass]="{
                            'parent-node': dataItem.items?.length > 0,
                            'child-node': !dataItem.items || dataItem.items.length === 0
                        }">
                        {{ dataItem.text }}
                    </span>
                </ng-template>
            </kendo-dropdowntree>
        </div>
    </div>
    <kendo-dialog-actions>
        <mnp-button id="confirmaion-cancel-btn" fillMode="outline" (click)="close()">{{
            confirmationCancelBtn
        }}</mnp-button>
        <mnp-button id="confirmaion-submit-btn"  [disabled]="value === null" (click)="submit()">{{ confirmationSubmitBtn }}</mnp-button>
    </kendo-dialog-actions>
</mnp-dialog>


import { CommonModule } from '@angular/common';
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
import { TranslocoModule } from '@jsverse/transloco';
import { ActionsLayout, KENDO_DIALOGS } from '@progress/kendo-angular-dialog';
import { ButtonComponent, DialogComponent, LabelComponent } from '@mnp-firm-it/angular-ui-components';
import { KENDO_DROPDOWNS } from '@progress/kendo-angular-dropdowns';
import { KENDO_LABELS } from '@progress/kendo-angular-label';
import { HierarchicalItem } from '../../../models/contract-models';

@Component({
    selector: 'app-manual-confirmation',
    templateUrl: './manual-confirmation.component.html',
    styleUrls: ['./manual-confirmation.component.scss'],
    standalone: true,
    encapsulation: ViewEncapsulation.None,
    imports: [
        CommonModule,
        DialogComponent,
        KENDO_DROPDOWNS,
        KENDO_DIALOGS,
        ButtonComponent,
        TranslocoModule,
        KENDO_LABELS
    ]
})
export class ManualConfirmationComponent {
    @Input() actionsLayout: ActionsLayout = 'stretched';
    @Input() isOpen = false;
    @Input() confirmationTitle = 'title';
    @Input() confirmationMessage = 'message';
    @Input() confirmationCancelBtn = 'Cancel';
    @Input() confirmationSubmitBtn = 'Submit';
    @Input() data: HierarchicalItem[] = [];
    @Input() width = '250';
    @Input() height = '250';
    @Output() closed = new EventEmitter<void>();

    value: number | null = null;
    @Output() submitted = new EventEmitter<boolean>();

    close() {
        this.value = null;
        this.closed.emit();
        this.submitted.emit(false);
    }

    submit() {
        this.submitted.emit(true);
        this.close();
    }

    onValueChange(selectedId: any) {
        this.value = null;
        const findItem = (items: any[]): any =>
            items.reduce((acc, item) => {
                if (item.id === selectedId) return item;
                if (item.items) {
                    const found = findItem(item.items);
                    if (found) return found;
                }
                return acc;
            }, null);

        const selectedItem = findItem(this.data);
        console.log('Selected Item:', selectedItem);

        if (!selectedItem.items) {
            this.value = selectedId;
        } else {
            console.log('iam here');
            this.value = null;
        }
    }

    closeEvent(event: any): void {
        if (this.value === null) {
            event.preventDefault();
        }
    }
 
}

Layth
Top achievements
Rank 1
Iron
 updated question on 25 Jun 2025
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?