### Bug report
When building the scripts with NPM, there is syntax error "Unexpected number":
### Reproduction of the problem
Build the scripts (version 2025.3.812).
### Expected/desired behavior
The scripts must be built successfully.
### Workaround:
Remove the extra single quotes that wrap the version in the "rollup.mjs.config.mjs" and "rollup.modules.config.js" files:
import glob from 'glob';
import path from 'path';
import { nodeResolve } from '@rollup/plugin-node-resolve';
import polyfill from 'rollup-plugin-polyfill';
import alias from '@rollup/plugin-alias';
...
const version = '2025.3.812';
import glob from "glob";
import path from "path";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import polyfill from "rollup-plugin-polyfill";
import alias from "@rollup/plugin-alias";
...
const version = '2025.3.812';
### Environment
* **Kendo UI version: 2025.3.812
Filterable configuration in ForeignKey is not serialized in TagHelper Grid.
Open this REPL example
Filterable configuration in ForeignKey is not serialized in TagHelper Grid.
Filterable configuration in ForeignKey should be serialized in TagHelper Grid.
1692361
Currently, the Content function for Steps in a Wizard only accepts a string value (see API here).
This means that in order to add a partial view (bound to the current model and its properties), the most straightforward way I could find was to put the partial view (and any wrappers) in its own file and add an extension method "ToHtmlString()". For example:
@model MyModel
@(Html.Kendo().Wizard().Steps(step => {
step.Add().Content(Html.Partial("~/Path/To/View/Wrapper.cshtml", Model).ToHtmlString());
})
using Microsoft.AspNetCore.Html;
using System.IO;
public static class HtmlContentExtensions
{
public static string ToHtmlString(this IHtmlContent htmlContent)
{
if (htmlContent is HtmlString htmlString)
{
return htmlString.Value;
}
using StringWriter writer = new();
htmlContent.WriteTo(writer, System.Text.Encodings.Web.HtmlEncoder.Default);
return writer.ToString();
}
}
@model MyModel
@(Html.Kendo().TabStrip().Items(tabstrip => {
tabstrip.Add()
.Content(@<div id="@Model.TabContainer" class="myTabWrapperClass">
@await Html.PartialAsync("~/Path/To/View.cshtml", Model)
</div>);
})
### Bug report
When dragging and dropping a file into a specified FileManager folder, the Upload request triggers twice.
### Reproduction of the problem
1. Open the FileManager Demo: https://demos.telerik.com/kendo-ui/filemanager/index
2. Open the browser's Network tab.
3. Drag and drop a file into the FileManager.
4. Two Upload requests are triggered one after another.
### Expected/desired behavior
When uploading a single file with drag & drop, a single Upload request must trigger. When using the default upload button to upload a file, a single request triggers as expected.
### Environment
* **Kendo UI version: 2024.4.1112
* **jQuery version: 3.7.1
* **Browser: [all]
### Bug report
When defining custom editors in the OrgChart form by using EditorTemplateView() or EditorTemplateId() options, the editors are not initialized as expected.
### Reproduction of the problem
1) Define a DropDownList editor in a partial View and load it through the EditorTemplateView() option:
@(Html.Kendo().OrgChart<OrgChartEmployeeViewModel>()
.Name("departmentsChart")
.Editable(edit =>
{
edit.Form(form => form
.Items(i =>
{
i.Add().Field(x => x.ParentDepartment).EditorTemplateView(Html.Partial("~/Views/Shared/EditorTemplates/ParentDepartmentDropDown.cshtml"));
}));
})
...
)
// ~/Views/Shared/EditorTemplates/ParentDepartmentDropDown.cshtml
@model OrgChartEmployeeViewModel
@(Html.Kendo().DropDownListFor(m => m.ParentDepartment)
.OptionLabel("-None-")
.DataTextField("Text")
.DataValueField("Value")
.DataSource(source =>
{
source.Read(read => read.Action("ReadDepartments", "Home"));
})
)
2) The DropDownList is not initialized when opening the OrgChart form.
### Expected/desired behavior
The editors defined through the EditorTemplateView() or EditorTemplateId() options must be initialized correctly.
### Environment
* **Kendo UI version: 2025.2.520
* **jQuery version: 3.7.1
* **Browser: [all]
TimeDurationPickerFor does not work in EditorTemplates scenarios.
~/Views/EditorTemplate/
folder.@model double
@(Html.Kendo().NumericTextBoxFor<double>(m => m))
.Columns(columns =>
{
columns.Bound(m => m.Duration).EditorTemplateName("TimeDurationPicker");
columns.Command(command => command.Edit());
})
The TimeDurationPickerFor Helper does not work in EditorTemplates scenarios.
The TimeDurationPickerFor Helper should work in EditorTemplates scenarios.
Hi,
I'm following this document to load data into the grid view control using local data binding.
https://demos.telerik.com/aspnet-core/grid/local-data-binding
I'm not sure this is an issue or expected grid view behavior when using local data binding. If loader-type and no-records are added. What happens is when there are no records, the Skeleton is still displayed and the no-records template is not displayed (see the attached image)
<kendo-grid mobile="Disabled" name="Grid" loader-type="GridLoaderType.Skeleton">
<columns>
<column field="ProductName" title="Product Name">
</column>
<column field="UnitPrice" format="{0:C}" title="Unit Price" width="130">
</column>
<column field="UnitsInStock" title="Units In Stock" width="130">
</column>
<column field="Discontinued" title="Discontinued" width="130">
</column>
</columns>
<datasource type="DataSourceTagHelperType.Ajax" page-size="20" server-operation="false" data="@Model">
</datasource>
<filterable enabled="true">
</filterable>
<scrollable enabled="true" />
<pageable enabled="true">
</pageable>
<sortable enabled="true" />
<no-records template="string HTML template, automatically centered" />
</kendo-grid>
Thanks
Bob
As stated in the title, the Save() action of a grid (with pagination, not endless scroll) does set the scroll position to the top instead of persisting it.
I tried to follow instructions from https://www.telerik.com/aspnet-core-ui/documentation/html-helpers/data-management/grid/scrolling/overview#restoring-the-scroll-position but without success. The scroll position is moved to the top after the DataBound event handler.
The Kendo UI for jQuery TreeList provides options for configuring the settings of the Window when using Popup editing mode:
Currently, the Window options are not available for the HtmlHelper and TagHelper TreeList. Is it possible to implement the Window() configuration of the Editable() option, as per the example below?
.Editable(e => { e.Mode("popup"); e.Window(w => w.AppendTo("..").Animation(false).Draggable(false).Title("...")); })
### Bug report
When adding a <select> element as a custom tool in the Editor, the dropdown does not open.
### Reproduction of the problem
1) Run the Dojo sample and try to open the dropdown in the toolbar:
https://dojo.telerik.com/VVPUopDw
The same example work as expected with version 2023.1.117.
2) When using version 2024.4.1112, if you remove the "ref-toolbar-tool" attribute from the <div class='k-toolbar-item'> element, the dropdown opens as expected.
### Expected/desired behavior
The <select> element must function correctly when added as a custom tool in the toolbar.
### Workaround
Handle the "click" event of the select and prevent the event bubbling:
<script>
$(function () {
const selectElements = $('select[id^="symbolSelect_"]');
$(selectElements).each(function (index) {
this.addEventListener("click", clickHandlerSymbolSelect);
});
});
function clickHandlerSymbolSelect(e) {
e.stopPropagation(); //Prevent event bubbling, so Kendo cannot swallow or cancel the event.
const sendingElement = e.target;
sendingElement.showPicker();
return true;
}
</script>
### Environment
* **Kendo UI version: 2025.1.227
* **jQuery version: 3.7.1
* **Browser: [all]
### Bug report
When integrating components into the ToolBar by using the TemplateId() or TemplateView() options, the ToClientTemplate() option throws a client-side error "SyntaxError: Failed to execute 'appendChild' on 'Node': Unexpected token '<'".
When the component is added to the template without the ToClientTemplate() option, the component is rendered as expected in the ToolBar.
### Reproduction of the problem
A REPL sample for reproduction: https://netcorerepl.telerik.com/cTYqlaPG12psetl157
Remove the ToClientTemplate() option to observe how the DropDownList is rendered as expected.
### Expected/desired behavior
When using an external Kendo UI Template, any nested components must be defined with the ToClientTemplate() option.
### Environment
* **Telerik UI for ASP.NET Core version: 2025.2.520
* **jQuery version: 3.7.1
* **Browser: [all]
### Bug report
When using the sort" and "filter" toolbar commands, the "sort" and "filter" events do not trigger.
### Reproduction of the problem
A Dojo sample for reporduction: https://dojo.telerik.com/ySEQTSSS
### Expected/desired behavior
The "sort" and "filter" events must trigger when sorting and filterng the columsn through the respective toolbar commands.
### Environment
* **Kendo UI version: 2025.2.520
* **jQuery version: 3.7.1
* **Browser: [all]
### Bug report
The "Clear Sorting" and "Clear all filters" labels cannot be localized when using the "sort" and "filter" toolbar commands.
### Reproduction of the problem
A Dojo sample for reporduction: https://dojo.telerik.com/JHJGUaSH
### Expected/desired behavior
The "Clear Sorting" and "Clear all filters" messages should be exposed for localization.
### Environment
* **Kendo UI version: 2025.2.520
* **jQuery version: 3.7.1
* **Browser: [all]
### Bug report
When opening the filter menu of a specified column through the classic ColumnMenu, the filter container is displayed with scrollbars when the dropdown of the filter operator is opened.
### Reproduction of the problem
1) Define a Grid and enable its classic ColumnMenu.
2) Open the filter menu of a specified column and then open the dropdown to select a filter operator.
3) The filter container has scrollbars. The "k-menu-popup" element has "overflow: auto";
Use the following demo to test the case and select the "classic" type for the ColumnMenu: https://demos.telerik.com/kendo-ui/grid/column-menu
The issue does not appear when using version 2024.4.1112.
### Expected/desired behavior
The filter menu container must not change its appearance when the dropdown opens.
### Workaround:
<style>
.k-menu-popup {
overflow: visible !important;
}
</style>
The Core Grid throws an exception when setting its toolbar template through the ClientTemplateId option. The issue is a regression introduced in version 2025.2.520.
.ToolBar(toolbar => {
toolbar.ClientTemplateId("myTemplate");
})
An exception is thrown:
NullReferenceException: Object reference not set to an instance of an object
The configuration works without throwing exceptions.
Use the alternative way of setting the toolbar template, on the Grid's root level:
@(Html.Kendo().Grid <MyModel>()
.Name("grid")
.ToolBarClientTemplateId("myTemplate")
Expose the sorts TagHelper for the Grid's column filter datasource taghelper
Currently, the Grid's Column Filter Datasource Taghelper exposes the following inner child TagHelpers.
Unlike its HtmlHelper counterpart which happens to expose the .Sort()
API configuration. For example:
.Columns(columns =>
{
columns.Bound(p => p.ShipName).Filterable(ftb =>
{
ftb.Multi(true);
ftb.Search(true);
ftb.CheckAll(true);
ftb.DataSource(dataSource => dataSource
.Custom()
...
.Sort(sort =>
{
sort.Add("ShipName").Ascending();
})
);
});
})
.Items(items => { items.Add() .Field(f => f.Type) .Label(l => l.Text("Type:")) .Editor(e => { e.Upload() } }
When using the Kendo MultiSelect TagHelper and binding it to a model property, the selected values are not populated.
Create the MultiSelect and bind it to a property of the view model:
@model API.Models.IndexViewModel
<kendo-multiselect for="SelectedCategoriesTagHelper"
bind-to="@Model.Categories"
datatextfield="Text"
datavaluefield="Value"
></kendo-multiselect>
The MultiSelect TagHelper should correctly display the selected values when bound to a model property.
1682678
The Thumbnail() option of the Editor's ImageBrowser configuration does not provide UrlHandler() option, which is available for the Image() option.
Referenced in this commit
The UrlHandler() function must be available to set the URL that serves the thumbnail using a JavaScript handler.
1682129