Unplanned
Last Updated: 16 Oct 2026 07:21 by ADMIN

Issue

Using any overload of ToDataSourceResult(Async) with a DataSourceRequest containing filter descriptors on an IQueryable provided by Entity Framework core 2.x, causes Entity Framework's "Query cache" to fill up for different filter values, leaking memory in the process. This is caused by using Expression.Constant in the generated expression trees for a DataSourceRequest's FilterDescriptors. Refer to https://github.com/dotnet/efcore/issues/14859 for more details about why this leaks memory.

Since Entity Framework's cache is always missed for new filter values, performance is also degraded due to this issue.

The issue is not present when using Entity Framework core 3 or greater. Apparently using Expression.Constant is not an issue on these version.

I have attached a minimal working example that illustrates the memory leak.

Fix

This issue can be fixed by changing FilterDescriptorExpressionBuilder.CreateValueExpression to not return a ConstantExpression, but a MemberExpression instead. Entity Framework 2.x will correctly parameterize the MemberExpression, causing the query cache to be hit correctly for queries that only differ in parameter values. It won't parameterize ConstantExpressions. Refer to https://stackoverflow.com/a/60516780/147993 for an example of generating a MemberExpression instead of a ConstantExpression.

Completed
Last Updated: 07 Oct 2026 08:42 by ADMIN
Release 2026 Q4 (Oct)
Created by: Khengaik
Comments: 3
Category: UI for ASP.NET Core
Type: Bug Report
1

Using the latest 2026.3.811 version produces the following errors:

  • kendo.all.d.ts(12072,26): error TS2552: Build:Cannot find name 'SchedulerKendoKeydownEvent'. Did you mean 'SliderKendoKeydownEvent'?
  • kendo.all.d.ts(14372,9): error TS2416: Build:Property 'options' in type 'ToggleButton' is not assignable to the same property in base type 'Button'.
  • kendo.all.d.ts(14384,15): error TS2430: Build:Interface 'ToggleButtonOptions' incorrectly extends interface 'ButtonOptions'.

 

Declined
Last Updated: 02 Oct 2026 18:07 by ADMIN
Created by: Rex Chan
Comments: 1
Category: UI for ASP.NET Core
Type: Feature Request
0
Any plan changing asp.net core jquery wrapper to htmx ?
Declined
Last Updated: 25 Sep 2026 13:21 by ADMIN
Created by: Garrett
Comments: 5
Category: UI for ASP.NET Core
Type: Bug Report
1

I am seeing that once a grid checkboxlist column filter exceeds about 1000 items the wait time appears to increase non-linearly (performance is worse than linear.)  For example, with 3,000 items the page freezes for about 30 seconds.  The data is fetched in under 50 milliseconds, so the vast majority of this time appears to be processing by Kendo.

Please see the attached for my configuration.

Declined
Last Updated: 25 Sep 2026 10:42 by ADMIN
Created by: Dan
Comments: 2
Category: UI for ASP.NET Core
Type: Bug Report
1

In the ThemeBuilder the controls do not use the latest version.

For instance while playing around with the ThemeBuilder I noticed that the primary button does not look primary like on the demos page.

Also it would be helpful to provide a page where you explain where every color is used.

Won't Fix
Last Updated: 25 Sep 2026 10:21 by ADMIN
As of yesterday, we are unable to find the kendo.for.aspnet.core nuget package.  What is the replacement?
Completed
Last Updated: 24 Sep 2026 13:00 by ADMIN
Release 2020.R3.SP2
Created by: CLOCA
Comments: 0
Category: UI for ASP.NET Core
Type: Bug Report
3

When certain options of the editable Window are set through configuration, they are not being serialized correctly:

MinWidth
MinHeight
Events (Open, Close, etc.)

@(Html.Kendo().Scheduler<TelerikAspNetCoreAppScheduler.Models.TaskViewModel>()
   .Editable(e => e.Window(w => 
      w.MinHeight(1000)
        .MinWidth(1000)
        .Events(we => we.Open('onOpen'))))
)


Declined
Last Updated: 24 Sep 2026 12:55 by ADMIN
Created by: Hubert Frick
Comments: 1
Category: UI for ASP.NET Core
Type: Bug Report
1

Bug report
For the Telerik Scheduler Timeline View, since the update from somewhere in between version 2022.3.1109 to 2024.2.154, a custom timeline view cannot be selected if the view name has dot(s) in its name (e.g. "kendo.ui.customTimelineView").

Reproduction of the problem

Add a custom Timeline View by extending the kendo.ui.TimelineView

Current behavior

Unlike older versions (I know that it worked with version <= 2022.3.1109, but don't know when exactly it was introduced)  now the ui blocks, when the custom select view button is clicked. Specifically, the problem is in kendo.scheduler.js at line 4554:

var viewElementToSelect = that.toolbar.find("[" + kendo.attr("name") + "=" + name + "]");

Expected behavior

In this code line, the find method does not work when the variable "name" contains something like "kendo.ui.CustomTimelineView". As a solution, I suggest escaping the name beforehand:

var nameEscaped = $.escapeSelector(name);
var viewElementToSelect = that.toolbar.find("[" + kendo.attr("name") + "=" + nameEscaped + "]");
With that or a similar solution , my custom Timeline View can be selected as before.
Completed
Last Updated: 24 Sep 2026 12:12 by ADMIN
Release 2026 Q1 (Feb)

I am working on a grid that has 3 requirements that seem to cause the bug:

  • A FK column must have its lookup values loaded remotely
  • The grid has sticky columns
  • The grid is loaded inside a tab strip control

The combination of these 3 factors causes the grid not to load and results in a devtools console error. It's worth noting that removing any of the 3 bullet points above (e.g. NOT using sticky columns, NOT loading grid in tab control, or NOT have a remote FK column) allows the grid to load properly.

The error thrown in the DevTools console indicates that the grid's "tbody" property is not created at the time it is trying to call _setStickyStyles.

Before error is thrown (mouse is hovering over "tbody" property):

 

After error is thrown (look at console output):

 

I have upload a zip file containing a sample project that demonstrates the issue. When you launch the sample application, there are 2 links at the top of the page, "No Tabs" and "Tabs". The issue is reproducible on the "Tabs" page. Both pages use the same grid partial, but the "Tabs" page loads the partial through the tabstrip with a controller action. The "Tabs" page includes the 3 bullet points I indicated above that cause the problem.

The workaround I am using for now in my application is to NOT set the columns as sticky in my partial view. Instead, I set the sticky columns using the grid's API method "stickColumn" (https://www.telerik.com/kendo-jquery-ui/documentation/api/javascript/ui/grid/methods/stickcolumn) during the grid's dataBinding event (to ensure sticky columns are set AFTER grid initialization). This allows the grid to load and sets the sticky columns appropriately.

Thank you!

Declined
Last Updated: 03 Sep 2026 08:19 by ADMIN
Built-in Grid UI for state persistence with multi-layout management

Add first-class Save/Load layout tools to the Grid toolbar that persist and restore Grid state without custom wiring. The default provider should use localStorage, with an extensibility point to plug in server storage. Users should be able to:
- Save multiple named layouts (columns/order/visibility, sorting, filtering, grouping, paging, search panel state).
- Open a built-in popup to manage layouts (save as, rename, delete, set default) and load a selected layout.
- Choose storage scope per layout (local vs. server) with a simple toggle; the server provider API can be implemented by the app.

Behavior and scope
- Persist and restore via an internal provider abstraction; ship a default localStorage provider and document a server provider interface.
- Support full or partial restores; allow picking which parts to include (for example, only columns/layout vs. full DataSource state) to align with existing guidance on selectively applying options through `setOptions({ ... })` and DataSource APIs like `dataSource.filter(...)` [1] [2] [3] [4].
- Avoid double reads and support automatic persistence flows similar to the documented beforeunload/ready pattern; native implementation should mirror the current best-practice approach that saves on leave and restores on load, with an option to disable automatic behavior when using explicit Save/Load actions [2] [5].
- Respect known constraints for SignalR binding by restoring layout via `setOptions({ columns, ... })` and reapplying data state via DataSource methods to keep the hub connection intact; provide an out-of-the-box “SignalR-safe” mode that applies filters/sort/page through DataSource APIs [1] [3] [4].
- Include search box value persistence and ensure multi-check filter lists load their full option sets when state is restored, consistent with existing recommendations to persist search input and configure filter DataSources [6].

Developer experience
- New built-in toolbar tools: “Save Layout,” “Load Layout,” and “Manage Layouts…”, plus a public API to trigger the same actions programmatically [7] [8].
- Config options to:
  - Enable the feature and set a default storage provider (local or custom).
  - Define which state segments to include (columns, sorting, filtering, grouping, paging, search).
  - Provide hooks/events for pre-save, post-save, pre-load, post-load to modify payloads or enforce policies.
- A documented provider interface for custom storage so apps can store/retrieve named layouts from a server.

Rationale
- State persistence is officially supported via `getOptions()`/`setOptions()` and is commonly implemented with localStorage and beforeunload/ready flows, but requires custom buttons and wiring today [2] [5].
- Partial restore and DataSource API reapplication are established practices to handle limitations such as SignalR-bound grids where full `setOptions()` is not viable; the feature should codify these patterns into a turnkey, user-facing experience [1] [3] [4].
- Developers frequently need to persist search input and ensure multi-check filter option lists are correct after restore; including these in first-party behavior reduces extra glue code [6].

Requested deliverables
- Built-in toolbar Save/Load/Manage UI with a popup for multiple named layouts and defaults.
- Default localStorage provider; extensible provider model for server storage.
- Options to scope which state is saved/restored and a SignalR-safe mode.
- Public API and events for integration and policy control.
- Docs and demos covering automatic and manual flows, local vs. server storage, and SignalR scenarios.

[1] [3] [4] [2] [5] [6] [7] [8]

[1]: https://www.telerik.com/forums/localstorage-persistence-not-working-with-kendo-grid
[2]: https://www.telerik.com/aspnet-core-ui/documentation/knowledge-base/grid-automatically-persist-state
[3]: https://www.telerik.com/forums/localstorage-persistence-not-working-with-kendo-grid
[4]: https://www.telerik.com/forums/localstorage-persistence-not-working-with-kendo-grid
[5]: https://www.telerik.com/aspnet-core-ui/documentation/knowledge-base/grid-automatically-persist-state
[6]: https://www.telerik.com/forums/grid-state-persistance-with-column-filters-or-search-bar
[7]: https://www.telerik.com/aspnet-core-ui/documentation/html-helpers/data-management/grid/overview
[8]: https://www.telerik.com/aspnet-core-ui/documentation/html-helpers/data-management/grid/toolbar
Planned
Last Updated: 07 Aug 2026 06:57 by ADMIN
Scheduled for 2026 Q4
Created by: Janick
Comments: 6
Category: UI for ASP.NET Core
Type: Feature Request
6

Consider the use of TextWriter async methods for the HTML Helpers, for example the WriteInitializationScript methods.  In certain scenarios the use of the synchronous methods causes an exception: System.InvalidOperationException: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead.

This can be resolved by explicitly enabling synchronous operations

services.Configure<IISServerOptions>(options =>
    {
        options.AllowSynchronousIO = true;
    });

though synchronous operations have been disabled by default at framework level as of .NET 3.0.

Completed
Last Updated: 21 Jul 2026 08:17 by ADMIN

Bug report

When a custom bundle is created the kendo.aspnetmvc script is not placed on the correct order. Thus, in some scenarios errors occur. For example if a custom kendo script is created using the following kendo-config.json and MultiColumnComboBox is used with ServerFiltering enabled and error will be thrown:

{
  "version": "2026.2.520",
  "components": [
    {
      "file": "kendo.aspnetmvc.js",
      "features": []
    },       
    {
      "file": "kendo.dropdownlist.js",
      "features": []
    },
    {
      "file": "kendo.multicolumncombobox.js",
      "features": []
    }
  ]
}

Reproduction of the problem

  1. Run the attached sample. In the sample a custom bundle as explained above is used. TelerikAspNetCoreApp1.zip
  2. Try to select values in the DropDownList or MultiColumnCombobox

Current behavior

The bundle builder allows kendo.aspnetmvc.js to run before the widgets whose UI for ASP.NET Core helpers it augments. The data in the components is not filtered and the following error is thrown:

Uncaught TypeError: kendo.ui.MultiColumnComboBox.requestData is not a function

Expected/desired behavior

The kendo.aspnetmvc.js schould be ordered correctly by the custom script builder, so errors to be avoided and the components to work as expected.

TicketID:

1716198

Environment

  • Kendo/Telerik version: 2026.2.520
  • Browser: [all ]
Unplanned
Last Updated: 22 May 2026 10:59 by ADMIN
**Title:**

> PivotGridV2 local flat-data binding produces identical values for all measures when multiple field-based measures are defined

---

**Description:**

When using **PivotGridV2** with local flat data (`.BindTo()` / inline `data` option) and defining **multiple measures that each reference a different numeric field**, all measures resolve to the same aggregated value instead of summing only their designated field.

### Environment
- Telerik UI for ASP.NET Core (2025 Q2 / latest)
- .NET 10
- Tested in Chrome, Edge

### Steps to Reproduce

1. Define a flat data model with multiple numeric properties:

```csharp
public class PivotRow
{
    public string Category { get; set; }
    public int Revenue { get; set; }
    public int Units { get; set; }
}
```

2. Configure PivotGridV2 with two measures on separate fields:

```csharp
.Schema(schema => schema
    .Cube(cube => cube
        .Dimensions(d => { d.Add(m => m.Category).Caption("Category"); })
        .Measures(measures =>
        {
            measures.Add("Total Revenue").Field(m => m.Revenue).AggregateName("sum");
            measures.Add("Total Units").Field(m => m.Units).AggregateName("sum");
        })
    )
)
.Measures(measures => measures.Values("Total Revenue", "Total Units"))
```

3. Bind to local data containing rows where Revenue ≠ Units (e.g., Revenue=5000, Units=3).

### Expected Behavior

Each measure column aggregates **only its own field**:
- "Total Revenue" sums only the `Revenue` property
- "Total Units" sums only the `Units` property

### Actual Behavior

**All measure columns display the same value.** Both "Total Revenue" and "Total Units" show the same number. The pivot engine appears to ignore the `field` property on each measure definition during aggregation, summing the same (first?) numeric field for every measure.

### Key Observations

- The serialized cube schema is correct — each measure has the proper `field` mapping:
  ```json
  {
    "Total Revenue": { "field": "Revenue", "aggregate": "sum" },
    "Total Units": { "field": "Units", "aggregate": "sum" }
  }
  ```
- The underlying `PivotCubeBuilder.process()` method (used by `PivotDataSource` v1) **does** produce correct per-measure values when invoked manually with the same data and configuration.
- The bug is specific to **`PivotDataSourceV2`** — the v2 pipeline does not pass the per-measure field context through to its internal aggregation path, causing all measures to resolve identically.
- A single measure (e.g., only "Total Revenue") works correctly. The bug only manifests with **2+ measures referencing different fields**.

### Workaround

We implemented a monkey-patch on `PivotDataSourceV2.fn._saveState` that intercepts the rendered cell array and recalculates each cell's value from raw data using the measure's `field` property and tuple member filters. This confirms the issue is isolated to the v2 data source aggregation pipeline — the grid rendering layer correctly displays whatever values `_saveState` provides.

### Attached

Full `.cshtml` page demonstrating the issue (with workaround patch included for reference).

Unplanned
Last Updated: 12 May 2026 08:36 by ADMIN
Created by: Zack
Comments: 1
Category: UI for ASP.NET Core
Type: Feature Request
1
I would like to see the Agentic UI generators expanded to support ASP.NET Core and and Kendo UI for JQuery.
Unplanned
Last Updated: 11 May 2026 11:53 by Adam
Created by: Adam
Comments: 0
Category: UI for ASP.NET Core
Type: Bug Report
0

According the the documentation a user should be able to use the keyboard to navigate out of the spreadsheet as deescribed here. However, this does not happen.

Steps to reproduce:

  1. Open the Dojo - https://dojo.telerik.com/IvdWHNwo/2
  2. Navigate or click in the last cell in the last row
  3. Click Tab key.

Current behavior: The focus remains in the same cell.

Expected behavior: Teh second input should be focused.

The issue is a regression starting with version 2024.4.1112

Unplanned
Last Updated: 18 Feb 2026 05:53 by Martijn
Created by: Martijn
Comments: 0
Category: UI for ASP.NET Core
Type: Feature Request
1

The MCP assistant server currently supports Visual Studio, Visual Studio Code and Cursor.

Provide official support for Claude Code as well:

Completed
Last Updated: 10 Nov 2025 10:59 by ADMIN
Release 2025 Q4 (Nov)

Bug report

Editor components throw AmbiguousMatchException when bound with models that have property shadowing in inheritance hierarchies.

Reproduction of the problem

  1. Create a model hierarchy where a derived class shadows a base class property with new keyword
  2. Bind the Editor component with the shadowed property
  3. Exception is thrown during reflection

Current behavior

(optional)
The components should handle property shadowing gracefully and generate the appropriate HTML input element.

Expected/desired behavior

AmbiguousMatchException is thrown when trying to bind the component to the shadowed property.

TicketID:

1699473

Environment

  • Kendo UI version: 2025.3.825
  • Browser: [all]
Completed
Last Updated: 25 Aug 2025 13:30 by ADMIN
Release 2025 Q4 (Nov)
Created by: Khengaik
Comments: 0
Category: UI for ASP.NET Core
Type: Bug Report
0

### 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:

  • rollup.mjs.config.mjs
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';
  • rollup.modules.config.mjs
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

Unplanned
Last Updated: 19 Aug 2025 08:38 by Hien
Created by: Hien
Comments: 0
Category: UI for ASP.NET Core
Type: Feature Request
0
Is it possible to implement the Top Navbar navigational element in the Telerik UI for ASP.NET Core suite?
Unplanned
Last Updated: 07 Aug 2025 15:17 by ADMIN
Created by: Tommy
Comments: 0
Category: UI for ASP.NET Core
Type: Feature Request
1
I have been using the Query Builder now available in the web report designer and I wonder if you would consider making it available as a stand along component?
Maybe adding it to the Kendo UI .Net Core offering would at least entice us to sign up for that too!
1 2 3 4 5 6