Unplanned
Last Updated: 14 Apr 2025 10:07 by ADMIN
Created by: Emily
Comments: 5
Category: Grid
Type: Feature Request
4

I'm in the process of rewriting all Kendo components to use CSP compatible templates. I'm looking at https://docs.telerik.com/aspnet-core/html-helpers/template/overview which shows how we'd use TemplateComponentName() for popup editors and that we would need to rewrite everything in the popup editor to use Kendo Template's AddHtml or AddComponent methods.

Original:

<div class="mb-2 row required"> @Html.LabelFor(model => model.FileName, new { @class = "col-sm-4 col-form-label fw-bold text-sm-end" }) <div class="col-sm-6"> @(Html.Kendo().TextBoxFor(model => model.FileName).HtmlAttributes(new { @class = "w-100" })) </div> </div> <div class="mb-2 row"> @Html.LabelFor(model => model.FileDescription, new { @class = "col-sm-4 col-form-label fw-bold text-sm-end" }) <div class="col-sm-6"> @(Html.Kendo().TextBoxFor(model => model.FileDescription).HtmlAttributes(new { @class = "w-100" })) </div> </div>

Rewritten:

@(Html.Kendo().Template()
	.AddHtml("<div class='mb-2 row required'>")
	.AddHtml(@<text>
		@Html.LabelFor(model => model.FileName, new { @class = "col-sm-4 col-form-label fw-bold text-sm-end" })
	</text>)
	.AddHtml("<div class='col-sm-6'>")
	.AddComponent(c => c.TextBoxFor(model => model.FileName).HtmlAttributes(new { @class = "w-100" }))
	.AddHtml("</div></div>")

	.AddHtml("<div class='mb-2 row'>")
	.AddHtml(@<text>
		@Html.LabelFor(model => model.FileDescription, new { @class = "col-sm-4 col-form-label fw-bold text-sm-end" })
	</text>)
	.AddHtml("<div class='col-sm-6'>")
	.AddComponent(c => c.TextBoxFor(model => model.FileDescription).HtmlAttributes(new { @class = "w-100" }))
	.AddHtml("</div></div>")
)

While this works, this markup seems much harder to read than the original. Could this be made to be simpler? Ideally I'd like to be able to drop my existing mix of html and kendo components in one method and it'd parse through to render the template properly.

 

Unplanned
Last Updated: 11 Apr 2025 10:33 by Paul

If I set the id directly in the HTML attributes for a checkbox, then the result when rendered has duplicate input elements with the same ID in the DOM. 

Below is an example of this

ASP.NET Core REPL - ASP.NET Core Components Playground & Testing - Telerik

This issue does not exist on any of the other Telerik controls that we've used (as far as I'm aware). This includes ones where there are two inputs - one for selecting a value and the other for storing it e.g. ComboBox

https://netcorerepl.telerik.com/wfuoYWkZ40lQM5hY39



or similarly for NumericTextBox 

https://netcorerepl.telerik.com/mfOIYikZ44Kr8qjU21



The best solution would be to make checkboxes consistent with other controls by preventing the IDs from being duplicated when the property is set.


Unplanned
Last Updated: 09 Apr 2025 06:46 by Avinash
Created by: Avinash
Comments: 0
Category: DropDownList
Type: Feature Request
1
It would be helpful to have an option to make the group header of the DropdownList not sticky.
Unplanned
Last Updated: 01 Apr 2025 10:50 by Dan
Created by: Dan
Comments: 0
Category: Form
Type: Feature Request
1
Add a configuration option to set the label to false, so the label won’t be added to the component. Kendo UI for jQuery already has this option with label: false, which removes the label, as shown in this Dojo.
Unplanned
Last Updated: 20 Mar 2025 17:04 by Mahendra

Currently, the Editor's ImageBrowser dataSource only uses the default name, size, and type fields: https://docs.telerik.com/kendo-ui/api/javascript/ui/editor/configuration/imagebrowser.schema.model.fields#imagebrowserschemamodelfields

Additional custom fields coming with the response (sent back to the client by the specified end point) are ignored and are not accessible in the ImageBrowser's dataSource.

Unplanned
Last Updated: 20 Mar 2025 07:51 by ADMIN
Can we put in a feature request to add delete-confirmation="true" for the treelist. It seems like it should be built into all controls that have a destroy.
Unplanned
Last Updated: 19 Mar 2025 09:39 by ADMIN

I'm using an OData datasource to populate the grid.  To make matters worse, the Autocomplete retrieves data for *all* of the grid columns.  I'd say the default behavior should only retrieve the current column's data and preferably use OData groupby to limit the results to distinct values.

Interestingly, the CheckBoxList filter *is* populated from the current grid data, behaving as expected.  

My page is attached and the issue is occurring in the detail grid where Server Filtering is disabled.

Unplanned
Last Updated: 18 Mar 2025 09:44 by Martin Robins
Created by: Martin Robins
Comments: 0
Category: DateTimePickers
Type: Feature Request
0

Currently, the DatePicker can be set to read-only mode by adding the "readonly" attribute through the HtmlAttributes() option or by calling the client-side readonly() method.

Is it possible to implement a built-in Readonly() option, so the DatePicker is initialized as read-only? For example:

@(Html.Kendo().DatePickerFor(m => m.StratDate)
  .Readonly(true)
)

Completed
Last Updated: 17 Mar 2025 17:38 by ADMIN
Created by: SturmA
Comments: 2
Category: UI for ASP.NET Core
Type: Feature Request
1

Hi Team,

Currently, Telerik.Licensing NuGet package only has target for netstandard2.0, netframework462 and net6.0. I cannot use .NET 6 for my .NET 9 application because .NET 6 is out of support. 

This is a feature request to either

  • Remove the net6.0 TFM and reply only on netstandard2.0
    • or
  • Add net8.0 and net9.0 targets.

Thank you,

Arthur

Unplanned
Last Updated: 11 Mar 2025 09:45 by AGUSTIN

As a result of an EF Core issue, the ToDataSourceResult() is not able to perform the query when the DataSourceRequest object contains grouping.

The problem occurs using the query below, assembled by Telerik routine:

var temp = _db.Pessoa
    .OrderBy(item => item.Email)
    .Skip(0)
    .Take(40)
    .GroupBy(item => item.Email)
    .OrderBy(g => g.Key)
    .Select(g => new AggregateFunctionsGroup
    {
        Key = g.Key,
        ItemCount = g.Count(),
        HasSubgroups = false,
        Member = "Email",
        AggregateFunctionsProjection = new
        {
            Count_Referencia = _db.Pessoa
                    .Select(t => new
                    {
                        t.IdPessoa,
                        t.Referencia,
                        t.Nome_RazaoSocial,
                        t.Apelido_Fantasia,
                        t.CPF_CNPJ,
                        t.RG_IE,
                        t.Email
                    })
                    .OrderBy(item => item.Email)
                    .Where(item => item.Email == g.Key)
                    .Count()
        },
        Items = g
    })
    .ToList();

In the routine where the AggregateFunctionsGroup is created, the Items property must not only be the query itself, but also the fields specified in the main Select. Or, the call to the Select() method must simply be added:

var temp = _db.Pessoa
    .OrderBy(item => item.Email)
    .Skip(0)
    .Take(40)
    .GroupBy(item => item.Email)
    .OrderBy(g => g.Key)
    .Select(g => new AggregateFunctionsGroup
    {
        Key = g.Key,
        ItemCount = g.Count(),
        HasSubgroups = false,
        Member = "Email",
        AggregateFunctionsProjection = new
        {
            Count_Referencia = _db.Pessoa
                    .Select(t => new
                    {
                        t.IdPessoa,
                        ...
                    })
                    .OrderBy(item => item.Email)
                    .Where(item => item.Email == g.Key)
                    .Count()
        },
        Items = g.Select(t => new
        {
            t.IdPessoa,
            ...
        })
    })
    .ToList();

This way, the issue does not occur.

Planned
Last Updated: 27 Feb 2025 11:15 by ADMIN
Scheduled for 2025 Q3 (Aug)
Created by: Janick
Comments: 2
Category: UI for ASP.NET Core
Type: Feature Request
5

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.

Unplanned
Last Updated: 26 Feb 2025 07:47 by Mohamed
Created by: Mohamed
Comments: 0
Category: TextBox
Type: Feature Request
1
Email validation for TextBox seems not to include top level domains (like ".com"). It seems to accept emails like "john@doe".

Is it possible to include TLD by default in email validation ?
Unplanned
Last Updated: 25 Feb 2025 23:27 by Mark
Created by: Mark
Comments: 0
Category: Grid
Type: Feature Request
2
I have a grid which uses Batch(true) and ServerOperation(false).

The grid must allow changes to be made in specific cells, without those changes being committed/saved unless the user clicks on the "Save" button in the toolbar. Basically the users enter in some values for editable currency columns that aren't locked, and (without saving) some columns (both locked and not locked) that are not editable must be refreshed as the value in those cells depend on the edited column. Those cells have client templates and client footer templates which need to be used by whatever is refreshing their cells.

Having this functionality provided built-in will be a nice addition:
https://docs.telerik.com/kendo-ui/knowledge-base/grid-update-particular-row-without-refresh

Unplanned
Last Updated: 17 Feb 2025 14:19 by ADMIN
I am using a Kendo grid. I am letting the users to export the grid to excel. When they click on Export to excel button, the grid gets automatically saved to Downloads folder. Can you add the feature so that users are presented with a SaveAs box so that end users can save the grid to the desired location on their computer. This is really needed by our company. All of our users are not technically savvy so they dont know where the grid got save automatically.
Unplanned
Last Updated: 11 Feb 2025 08:52 by Richard
Created by: Richard
Comments: 0
Category: RadioButton
Type: Feature Request
1
I am trying to validate a required field using a radio button. Everything works as expected when selecting the radio button with the mouse. If I tab to the radio button and arrow to make my selection it triggers a validation error. Even though the arrowing over has made a selection by default. see pic below.

Select the ID textbox and enter the value 1.
Tab to the Radio button by pressing the tab key.
Arrow right or down to change the selection to no.
Radio button triggers the validation error. Even though the option No is selected.

Unplanned
Last Updated: 07 Feb 2025 14:20 by ADMIN
Scheduled for 2025 Q2 (May)
Created by: Alistair
Comments: 0
Category: Wizard
Type: Feature Request
3

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();
    }
}
This is not ideal, as it requires the usage of Html.Partial (which displays a warning in the latest versions of .NET 8). It is also awkward as it sometimes means that new view files need to be created for the explicit purpose of being a "wrapper" even though they do not contain much content. And lastly, it also requires an extension method, so it's not immediately easy for other Telerik users to use.

In the Telerik TabStrip, a better approach is possible, as the Content for Items can take in a function which accepts Razor syntax (see API here). For instance:

@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>); })

In this case, we can use Html.PartialAsync (avoiding .NET 8 warnings), we don't need an extension method, and it is easy to add any required "wrapping" such as a div with an ID, without needing a whole separate view.

If we had the option to use the same approach with Wizard Steps, that would be ideal!

Unplanned
Last Updated: 07 Feb 2025 10:37 by Korstiaan

Serializing DataSourceResult when it contains several groups is significantly slower compared to serializing the object when no grouping is used. Consider ways to improve the performance. For more context and an example, see Ticket ID: 1677867.

Unplanned
Last Updated: 06 Feb 2025 07:11 by Manu
After closing the popup window by clicking the Update or Cancel button, the grid should automatically select the previously viewed row and adjust the vertical scroll position to keep it within the visible area.
Unplanned
Last Updated: 28 Jan 2025 08:24 by ADMIN

Current configuration: server-side filtering

Desired behavior:

  1. Grid searches are "anded" to any existing filters
  2.  When the search box is cleared the pre-existing filters are retained
Declined
Last Updated: 27 Jan 2025 17:54 by ADMIN
I am using the Kendo UI Upload Control and wanted to allow for multiple files in synchronous mode, but when adding multiple files at the same time, they are grouped together in the same line item. Is there a way to have each separate file as its own line item and remove item individually if we upload multiple files together? Currently while uploading multiple files and removing a single one is not supporting in synchronous mode.
1 2 3 4 5 6