Unplanned
Last Updated: 23 Dec 2024 14:09 by Garrett

### Bug report

When the Grid is set up for OData-v4 binding, the columns that bind to DateOnly fields fail to filter. The date value in the filter expression contains the time portion and the following error is thrown:

"The binary operator GreaterThan is not defined for the types 'System.Nullable`1[System.DateOnly]' and 'System.Nullable`1[System.DateTimeOffset]'."

### Reproduction of the problem

1) Create a Grid that uses OData-v4 binding.

2) Bind a specified column to a DateOnly field.

3) Filter the column through the default column filter menu and open the browser DevTools to review the response of the request.

//Model
public DateOnly LastProdUpdate { get; set; }

//View
@(Html.Kendo().Grid<ProductViewModel>()
    .Name("grid")
     .Columns(columns =>
        {
            columns.Bound(p => p.LastProdUpdate).Format("{0:dd/MM/yyyy}");
        })
        ...
        .Filterable()
        .DataSource(dataSource => dataSource
        .Custom()
        .Type("odata-v4")
        .Transport(t =>
        {
            t.Read(read => read.Url("/odata/Products").Data("function() {return {'$expand': 'Employee'} }"));
        })
        .PageSize(10)
        .ServerPaging(true)
        .ServerFiltering(true)
        .ServerSorting(true)
     )
)

### Expected/desired behavior

The DateOnly fields must be filtered successfully as the DateTime fields.

### Environment

* **Kendo UI version: 2024.4.1112
* **Browser: [all]

Completed
Last Updated: 20 Dec 2024 13:21 by Dan
Release 2025 Q1 (Feb)

Bug Report

The Pickers are not bound to model value when a nullable DateTime is set.

Reproduction of the problem

  1. Create a model with a nullable DateTime property
         public class MyModel
         {
               public DateTime? Birthday { get; set; }
         }
    
  2. Declare either a DatePickerFor, DateRangePickerFor, DateInputFor, or TimePickerFor Helpers
        @(Html.Kendo().TimePickerFor(m => m.Birthday))
    
  3. Notice, that the value has not been bound accordingly.

Current behavior

The Pickers are not bound to model value when nullable.

Expected behavior

The Pickers are not bound to model value when a nullable DateTime is set.

Environment

Kendo UI version: 2024.4.1112
jQuery version: x.y
Browser: [all]

Completed
Last Updated: 20 Dec 2024 10:53 by ADMIN
Release 2025 Q1 (Feb)

### Bug report

When the project is configured for runtime compilation, and the TagHelper DropDownList has custom classes or attributes, NullReferenceException is thrown.

### Reproduction of the problem

1. Create a .NET 8 project and install the  Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet package.

2. Define a TagHelper DropDownList and add a custom class:

//Program.cs
builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();

builder.Services.AddMvc().AddJsonOptions(options => options.JsonSerializerOptions.PropertyNamingPolicy = null);
builder.Services.AddKendo();

//View

<kendo-dropdownlist for="Id" datatextfield="Text" datavaluefield="Value" auto-width="true" class="form-control w-75">
    <datasource type="Kendo.Mvc.UI.DataSourceTagHelperType.Ajax">
        <transport>
            <read url="@Url.Action("GetData", "Home")"/>
        </transport>
    </datasource>
</kendo-dropdownlist>

3. Run the application and observe the exception: "NullReferenceException: Object reference not set to an instance of an object."

4. When using the HtmlHelper version of the DropDownList or removing the custom class from the TagHelper declaration, the error does not occur.

### Expected/desired behavior

The TagHelper DropDownList must exhibit the same behavior as the HtmlHelper DropDownList.

### Workaround

Add the custom class with jQuery:

<kendo-dropdownlist for="Id" datatextfield="Name"  datavaluefield="Id"  auto-width="true">
 ...
</kendo-dropdownlist>

<script>
$(document).ready(function(){
    $("#Id").addClass("form-control w-75"); // add the class to the hidden input element
    $("#Id").attr("required", "required");
    $("#Id").closest("span.k-dropdownlist").addClass("form-control w-75"); // add the class to the wrapper element
});
</script>

Alternatively, switch to the HtmlHelper version of the DropDownList.

### Environment

* **Telerik UI for ASP.NET Core version: 2024.4.1112
* **Browser: [all]

Unplanned
Last Updated: 16 Dec 2024 13:25 by Richard
Created by: Richard
Comments: 0
Category: Sortable
Type: Bug Report
1

Bug report

The Start Event of a Sortable component is mapping to the "handler" configuration instead of the proper "start" event

Reproduction of the problem

REPL: https://netcorerepl.telerik.com/wIYLYnld333JlP3t08

Current behavior

The Start Event is mapped to the "handler" configuration

Expected/desired behavior

The Start Event to be mapped to the proper "start" event

TicketID: 1673355

Unplanned
Last Updated: 10 Dec 2024 09:32 by ADMIN
Created by: David
Comments: 2
Category: Grid
Type: Feature Request
1

By default, when the "paste" command is added, the default option is "insert" mode ("Paste (Insert)"). Is it possible to add an option that allows setting the default paste mode to "replace" ("Paste (Replace)")?

Completed
Last Updated: 10 Dec 2024 07:27 by ADMIN
Release 2024 Q4 (Nov)

Bug report

The custom ordering of the filter values in the Telerik UI ASP.NET Core Grid does not function correctly when using TagHelpers.

Reproduction of the problem

  1. Include operator configuration for string fields in the filterable settings.
  2. Add filter values
  3. The filter values are not shown in the configured order.

A REPL sample for reproduction: https://netcorerepl.telerik.com/wIYNvEvn00CAqNGL14

Expected/desired behavior

The filter values should be presented in the same order as specified in the Filterable configuration.

Environment

  • Kendo UI version: 2024.3.806
Completed
Last Updated: 06 Dec 2024 12:20 by ADMIN
Release 2025 Q1 (Feb)

### Bug Report

Picker TagHelpers do not set the "value" attribute in conjunction with the "for" attribute.

### Reproduction of the problem

1. Create a model with a nullable DateTime property:

         public class MyModel
         {
               public DateTime? Birthday { get; set; }
         }

2. Declare either a DatePickerFor, DateInputFor, or TimePickerFor TagHelpers and set an initial value:

        @model OrderViewModel
        <kendo-dateinput for="OrderDate" value="DateTime.Now">
          ...
        </kendo-dateinput>

3. Notice, that the value has not been assigned accordingly.

This behavior is not consistent with the HTMLHelper, as the Value() attribute is taken more predominantly when the PickerFor HtmlHelper is utilized:

@(Html.Kendo().DatePickerFor(m => m.ShippedDate)
    .Value(DateTime.Today)
)

### Current behavior

Picker TagHelpers do not set the "value" attribute in conjunction with the "for" attribute.

### Expected behavior

Picker TagHelpers should set the "value" attribute in conjunction with the "for" attribute.

### Environment

Telerik UI for ASP.NET Core version:  2024.4.1112
Browser: [all]

Unplanned
Last Updated: 05 Dec 2024 14:44 by ADMIN
Created by: Steve
Comments: 0
Category: Form
Type: Feature Request
0

The FormItemBuilder exposes an EditorTemplateView method which allows a view to represent the item and provides the entire modal to the view.

As the elements available to forms are limited to those hard coded by Telerik and whilst extension methods can be employed to expand this limitation slightly, the ability to create a context specific view would be ideal

The current implementation looks like this

Html.Kendo().Form<Model>()
    .Items(items =>
    {
        items.AddGroup("Test", 1, 10)
            .Items(i =>
                {
                    i.Add().Field(x => x.Username)
                    i.Add().Field(x => x.Password).EditorTemplateView(Html.Partial("MyView"))
                }
            );
    })

In this example, the entire model is provided into MyView. 

I suggest adding an EditorTemplateFor that uses the lamda expression provided in the Field() method such as

Html.Kendo().Form<Model>()
    .Items(items =>
    {
        items.AddGroup("Test", 1, 10)
            .Items(i =>
                {
                    i.Add().Field(x => x.Username)
                    i.Add().Field(x => x.Password).EditorTemplateViewFor(Html.Partial("MyView"))
                }
            );
    })
Using the convention I would expect MyView to be provided the Password field only
Planned
Last Updated: 04 Dec 2024 10:54 by ADMIN
Created by: Bryan Patrick
Comments: 0
Category: Grid
Type: Bug Report
1

Bug report

Expose additional API configurations for the Grid's ToolBar

Reproduction of the problem

As of recent releases, the Kendo UI Grid Toolbar has been substituted with the Kendo UI Toolbar. This change allows users to add the majority ToolBar.items API options apart from the built-in tools.

As noted within the Kendo UI for jQuery API documentation for the Grid's Toolbar:

"Apart from the built-in tools, the Grid fully exposes the ToolBar.items API. This way you can specify any custom tools in the widget using the components available in the ToolBar itself."

Current behavior

The inherited ToolBar.items API options are not available for the server-side Telerik UI Grid for ASP.NET Core and MVC wrappers as well.

Expected/desired behavior

It would be beneficial to the customers if the inherited ToolBar.items API options are available for the server-side Telerik UI Grid for ASP.NET Core and MVC wrappers as well.

Environment

  • Kendo UI version: 2024.1.130
  • Browser: [all]
Unplanned
Last Updated: 03 Dec 2024 12:05 by Chris

### Bug report

When loading an editor through a partial View using EditorTemplateView(await Html.PartialAsync("PartialViewName")), the following error occurs:

The 'await' operator can only be used within an async lambda expression. Consider marking this lambda expression with the 'async' modifier.

### Reproduction of the problem

@(Html.Kendo().Form<UserViewModel>()
     .Name("myForm")
     .Items(items =>
     {
         items.Add().Field(f => f.Username).EditorTemplateView(await Html.PartialAsync("PartialViewName"));
      })
)

### Expected/desired behavior

The EditorTemplateView() must accept Html.PartialAsync("PartialViewName").

### Environment

* **Telerik UI for ASP.NET Core version: 2024.4.1112
* **Browser: [all]

Completed
Last Updated: 03 Dec 2024 11:12 by ADMIN
Created by: Gaurav
Comments: 1
Category: Grid
Type: Feature Request
1
Is it possible to enhance the column menu by adding an option allowing the user to lock a specified column through the column menu?
Unplanned
Last Updated: 29 Nov 2024 09:51 by Steve
Created by: Steve
Comments: 0
Category: Switch
Type: Feature Request
1

The "Switch" component does not expose "Label" configuration.

For example:

@(Html.Kendo().Switch()
    .Name("switch")
    .Label(f => f
        .Content("Theme")
    )
)

 

Completed
Last Updated: 28 Nov 2024 15:02 by ADMIN
Release 2024 Q2 (May)

Bug report

In a .NET 7 project when TagHelper Grid is configured and RuntimeCompilation is employed, starting from version 2023.2.606 an unhandled exception is thrown.
image

Reproduction of the problem

  1. Create a .NET 7 project
  2. Enable RuntimeCompilation
  3. Install a 2023.3.606 or later version of Telerik UI for ASP.NET Core
  4. Configure a TagHelper Grid

Current behavior

When run a runtime error occurs

Expected/desired behavior

TagHelper Grid should exhibit the same behavior as HtmlHelper ones.

Environment

  • Kendo UI version: 2024.1.130
  • Browser: [all]
Unplanned
Last Updated: 28 Nov 2024 13:35 by ADMIN
Created by: Steve
Comments: 1
Category: UI for ASP.NET Core
Type: Feature Request
1

Whilst I'm aware that I can create a HTML label and add the k-label class. I feel that a Label and a LabelFor are essential parts of the toolkit to prevent brittle code getting created when/if the labels that are created within the toolkit have other requirements

I have created my own implementation for now but I think this should be added to your roadmap, especially as it's such a simple thing to do

Unplanned
Last Updated: 27 Nov 2024 13:15 by Josh

Is it possible to implement template options for the "update" and "cancel" column commands of the Grid?

For example:

$("#grid").kendoGrid({
  columns: [{ 
    command: [{
        name: "edit",
        template: {
            update: "<button class='customUpdate'>Save</button>",
            cancel: "<button class='customCancel'>Cancel</button>",
          }
      }]
   }],
  ...
});

Unplanned
Last Updated: 26 Nov 2024 07:30 by ADMIN
Created by: Khaled Salman
Comments: 3
Category: UI for ASP.NET Core
Type: Feature Request
1
*** Support ticket created by Telerik by Progress staff ***
*** Please follow-up with additional details, if necessary. Thank you. ***

There is currently no built-in feature to dynamically disable pagination when the number of grid rows is fewer than the defined page size. I need a way to automatically disable pagination when the number of records is less than or equal to the page size for a smoother user experience. Fig: 1(a)



In the above image, After filtering the data, despite current records are less than the page size but pagination is still appearing.
Completed
Last Updated: 26 Nov 2024 07:15 by ADMIN
Release 2025 Q1 (Feb)

### Bug report

When building the scripts through the 'npx gulp scripts' command, there is an error "Error: Cannot find module './build/gulp/kendo-version'".

### Reproduction of the problem

Download any of the source bundles (Core, MVC, jQuery) and try to build the scripts.


### Environment

* **Kendo UI version: 2024.4.1112

Completed
Last Updated: 22 Nov 2024 14:12 by ADMIN
Release 2025 Q1 (Feb)
Created by: Jon
Comments: 0
Category: Splitter
Type: Bug Report
1

### Bug report

When you click on the splitbar of a horizontal Splitter, the page scrolls down.

### Reproduction of the problem

1. Create a horizontal Splitter with 2 panes;

2. Set a height of the Splitter;

3. When the page is loaded, focus on the splitbar (click on it or resize the panes). As a result, the page scrolls down.

A Dojo sample for reproduction: https://dojo.telerik.com/uSanOtaW/2

### Expected/desired behavior

The page should not be scrolled vertically.

### Environment

* **Kendo UI version: 2021.3.1207
* **jQuery version: 1.12.4
* **Browser: [all]

Unplanned
Last Updated: 19 Nov 2024 13:36 by ADMIN
Scheduled for 2024 Q4 (Nov)

### Bug report

When the Virtualization of the MultiColumnComboBox is enabled, the table headers and rows are not aligned correctly.

### Reproduction of the problem

A Dojo sample for reproduction: https://dojo.telerik.com/ORalaWoq

The tables and rows are aligned as expected when using version 2021 R3 SP2 (2021.3.1207).

A temporary workaround:

<style>
    .k-table-list .k-table-group-row, .k-table-list .k-table-row {
        display: inline-flex;
    }
</style>

 

### Expected/desired behavior

The headers and rows should be aligned correctly when the Virtualization is enabled.


### Environment

* **Kendo UI version: 2022.1.412
* **jQuery version: 1.12.4
* **Browser: [all]

Planned
Last Updated: 19 Nov 2024 09:55 by ADMIN
Scheduled for 2025 Q2 (May)
Created by: Janick
Comments: 2
Category: UI for ASP.NET Core
Type: Feature Request
4

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.

1 2 3 4 5 6