Unplanned
Last Updated: 22 Mar 2024 10:20 by Don Leduc
Created by: Don Leduc
Comments: 0
Category: Grid
Type: Feature Request
1

Grid row drag and drop capabilities enhancement request.

Currently, in order to drop a row from one Grid into another empty Grid, adding a placeholder row to the empty Grid with custom logic is required: https://demos.telerik.com/kendo-ui/grid/drag-drop

It would be nice to have a more robust drag and drop functionality that doesn't rely on custom logic to such an extent.

Completed
Last Updated: 13 Feb 2024 08:29 by ADMIN
Created by: Paul
Comments: 0
Category: Grid
Type: Bug Report
1

Bug report

When the Grid's PopUp Editing is enabled on mobile devices there are additional inputs or missing styling in the PopUp.

Reproduction of the problem

  1. Open the Grid's Adaptive Rendering Demo
  2. Scan it with your mobile device and open the Demo on it
  3. Click the 'Add new record' or 'Edit'

Note: The issue doesn't reproduce in a browser's DevTools on desktop

Current behavior

The PopUp is misaligned or its styles are missing on mobile devices

Environment

  • Kendo UI version: 2022.3.913
  • Browser: [ Mobile Chrome | Android Web Browser | iOS Safari ]
Unplanned
Last Updated: 09 Feb 2024 16:26 by Kyle
Created by: Kyle
Comments: 0
Category: Grid
Type: Feature Request
5

Please ensure that FilterableMessageBuilder configurations are applied to the Filter's menu when it is placed within a ColumnMenu or expose configurations to control the messages of the Filter menu within the GridColumnMenuMessagesBuilder.

Here is an example REPL that showcases the configuration doesn't have effect

  .Filterable(f => f.Messages(m =>
    {
        m.And("Custom And");
        m.Or("Custom Or");
    }))

unless ColumnMenu() is commented out.

Completed
Last Updated: 05 Feb 2024 12:05 by ADMIN
Created by: William
Comments: 5
Category: Grid
Type: Feature Request
20

I'm currently evaluating the ASP .Net Core Components and whilst I'm liking it so far, I have to say - the documentation leaves a lot to be desired.

At the moment, I am trying to use grid and looking at documentation, I have no idea if I am meant to be looking in Kendo.Mvc.UI.Fluent or Kendo.Mvc.UI - and when I am there and find an item, there just isn't enough detail. In addition, the demos section appears to actually be more helpful and I'm constantly looking there.

What caused me to write this is that I have simply enabled GridFilterMode.Row on an instance and whilst I like it, I want to change the default from "Is Equal To" to "Contains"... I have been experimenting for the past few hours without any luck and I'm going round in circles on documentation:

I can see that Filterable requires GridFilterMode, but the documentation is lacking - https://docs.telerik.com/aspnet-core/api/Kendo.Mvc.UI/GridFilterMode#kendomvcuigridfiltermode

I then try to find the filterable modes documentation, but, half the features/methods just don't seem to have any affect whatsoever.

Personally, I'm having great luck learning about your components from the demo section and adapting the code to suite my needs - but, if there isn't a demo, it appears to be a very hard task to learn what is and isn't possible.

Unplanned
Last Updated: 31 Jan 2024 15:08 by Mark
Created by: Mark
Comments: 0
Category: Grid
Type: Feature Request
2

It would be beneficial if the Grid exposes a built-in option for explicitly setting an arrow indicator for selected rows similar to the following:

Completed
Last Updated: 18 Jan 2024 12:57 by ADMIN
Release 2024 Q1

Bug report

There is an edge case in the Pager's responsive configuration. If the width is between 480 and 600 pixels both the DropDownList and Buttons that allow the user to navigate through the pages are hidden.

Reproduction of the problem

  1. Open this Dojo
  2. Resize the right pane to be between 480px and 600px
  3. Run the Dojo

Current behavior

The buttons and dropdown are missing
image

Expected/desired behavior

The Pager should display a DropDownList for page selection when it is wide between 480 and 600px.

Environment

  • Kendo UI version: 2023.1.114
  • Browser: [all]
Completed
Last Updated: 18 Jan 2024 10:15 by ADMIN
Release 2024 Q1

Bug report

Grid throws an error when the Filterable Column Messages TagHelper is set.

Reproduction of the problem

  • Open the following Telerik REPL example.
  • Set the child <messages /> in a column's <filterable></filterable> TagHelper.
  • Notice the observed error.

Current behavior

Setting the Messages TagHelper produces the following compilation error:

The tag is not allowed by parent tag helper. Only child tags with name(s) 'cell, operators, datasource' are allowed.

Expected/desired behavior

Setting the Messages TagHelper should not produce the following compilation error.

Environment

  • Kendo UI version: 2023.3.1114
  • Browser: [all]
Completed
Last Updated: 18 Jan 2024 07:56 by ADMIN
Release 2024 Q1

Bug report

Group Paging is not working as expected when the Kendo UI Grid is populated from data deserialized from a file and multiple groups are defined.

Reproduction of the problem

Using the UI for ASP.NET Core Grid, populate it with a file, set GroupPaging to true, add more than one group, and set the default serialization:

 

builder.Services.AddControllersWithViews()
            .AddJsonOptions(options =>
                options.JsonSerializerOptions.PropertyNamingPolicy = null);
@(Html.Kendo().Grid<MyViewModel>()
        .Name("grid")
        .Groupable()
        .Scrollable(s=>s.Virtual(true))
        .DataSource(dataSource=>dataSource
            .Ajax() 
            .GroupPaging(true)
            .PageSize(50)
            .Read("ReadFromFile", "HomeController")
            .Group(x=>
            {
               x.Add(y=>y.Group1);
               x.Add(y=>y.Group2);
            })      
        )
        //...)

Current behavior

With multiple groups, the follow error message will appear:

System.ArgumentNullException: Value cannot be null. (Parameter 'source')
   at System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at Kendo.Mvc.Infrastructure.Group.InitializeSubgroups()
   at SubgroupsGetter(Object )
   at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer)
   at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWriteAsObject(Utf8JsonWriter writer, Object value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.Converters.IEnumerableConverter`1.OnWriteResume(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonCollectionConverter`2.OnTryWrite(Utf8JsonWriter writer, TCollection value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer)
   at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.WriteCore(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.Serialization.JsonConverter`1.WriteCoreAsObject(Utf8JsonWriter writer, Object value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.JsonSerializer.WriteCore[TValue](JsonConverter jsonConverter, Utf8JsonWriter writer, TValue& value, JsonSerializerOptions options, WriteStack& state)
   at System.Text.Json.JsonSerializer.WriteStreamAsync[TValue](Stream utf8Json, TValue value, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken)
   at System.Text.Json.JsonSerializer.WriteStreamAsync[TValue](Stream utf8Json, TValue value, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken)
   at System.Text.Json.JsonSerializer.WriteStreamAsync[TValue](Stream utf8Json, TValue value, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Mvc.Infrastructure.SystemTextJsonResultExecutor.ExecuteAsync(ActionContext context, JsonResult result)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

Expected/desired behavior

Server GroupPaging should work as expected with multiple groups and the default serialization that is delivered with ASP.NET Core. An example would be this live demo.

Workaround

Use the Newtonsoft library to set the serialization options for the application:

builder.Services.AddControllersWithViews()
  .AddNewtonsoftJson(options => options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver());

 

Environment

  • Kendo UI version: 2023.2.606
  • jQuery version: All Supported Versions
  • Browser: all
Unplanned
Last Updated: 09 Jan 2024 07:01 by Sreeju
Created by: Sreeju
Comments: 0
Category: Grid
Type: Feature Request
1
Add a built-in API configuration for the Edit command similar to how you can set the ToolBar.Create() API.
Completed
Last Updated: 05 Dec 2023 07:30 by ADMIN
Release R1.2024-Increment.2(31.Jan.2024)

Bug report

The DataSource's property groupPaging: true prevents the Grid's group from expanding if it has a defined groupHeaderColumnTemplate.

Reproduction of the problem

  1. Open this Dojo
  2. Try to expand the Grid's groups

Also reproducible in the Core wrapper where an error is thrown: kendo.all.js:8743 Uncaught TypeError: Cannot read property 'hasSubgroups' of undefined

Current behavior

groupPaging is not compatible with the groupHeaderColumnTemplate

Expected/desired behavior

groupPaging and the groupHeaderColumnTemplate should be compatible

Environment

  • Kendo UI version: 2021.2.616

  • Browser: [all]

Completed
Last Updated: 01 Dec 2023 11:58 by ADMIN

### Bug report

When the pageSizes option is enabled, it is not displayed when the Grid is initialized inside a hidden container.

### Reproduction of the problem

1) Follow the instructions in this KB article to display a Grid inside a TabStrip component.

2) Enable the "pageSizes" setting.

3) The drop-down, which allows the user to change the page size is always hidden.

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

The same example works correctly with version 2023.2.718.

### Expected/desired behavior

The pager must display the specified page sizes.

### Workaround

tabstrip.one("activate", function() {
  grid.pager._lastWidth = 30;
  grid.resize(true);
});

### Environment

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

Completed
Last Updated: 30 Oct 2023 08:57 by ADMIN
Release R1.2024-Increment.1(15.Nov.2023)
Created by: Dan Mortimer
Comments: 0
Category: Grid
Type: Feature Request
1
In Telerik UI for ASP.NET MVC you could put Grid options in the query string of the page with the grid name as a prefix and those would be automatically applied to the correct grid. This is achieved via the PrefixUrlParameters configuration, though it is missing for the ASP.NET Core Grid.
Unplanned
Last Updated: 25 Oct 2023 14:52 by Phillip
Created by: Phillip
Comments: 0
Category: Grid
Type: Feature Request
3

Is it possible to add an "attributes" option to the editable.window configuration that allows the addition of HTML attributes to the window?

For example:

//HtmlHelper Grid
@(Html.Kendo().Grid<OrderViewModel>()
     .Name("grid")
      ...
     .Editable(editable => editable.Mode(GridEditMode.PopUp).Window(wnd => wnd.HtmlAttributes(new { @class= "my-custom-window" })))
)

//Kendo UI for jQuery Grid
  $("#grid").kendoGrid({
    ...
    editable: {
      mode: "popup",
      window: {
        attributes: {
          "class": "my-custom-window"
        }
      }
    }
  });

Unplanned
Last Updated: 25 Oct 2023 12:10 by Duffy
Created by: Duffy
Comments: 0
Category: Grid
Type: Feature Request
2

Is it possible to implement binding of TimeSpan property to TimeDurationPicker editor?

For example:

@model TimeSpan?

@(Html.Kendo().TimeDurationPickerFor(m => m))

Completed
Last Updated: 24 Oct 2023 14:28 by ADMIN
Release R1.2024-Increment.1(15.Nov.2023)

Bug report

Grid Filterable Button Title Message is not correctly serialized.

Reproduction of the problem

  • Set the Filterable.Messages.ButtonTitle() API Configuration as follows:

          @(Html.Kendo().Grid<OrderViewModel>()
                .Name("grid")
                .Columns(columns =>
                {
                    columns.Bound(p => p.OrderID).Filterable(false);
                    columns.Bound(p => p.Freight);  
                })
                .Filterable(f => f.Messages(m => m.ButtonTitle("Filter")))
          )
    
  • Hover the Filter Button Icon and notice that the buttonTitle message is applied instead.

image

Current behavior

The Filter ButtonTitle message shows its default message.

Expected/desired behavior

The Filter ButtonTitle should show the custom-provided message.

Environment

  • Kendo UI version: 2023.3.1010
  • jQuery version: x.y
  • Browser: [all]
Completed
Last Updated: 24 Oct 2023 13:32 by ADMIN
Release R1.2024-Increment.1(15.Nov.2023)

Bug report

Grid PageSizes TagHelper attribute does not expose an IEnumerable overload

Current behavior

The Grid PageSizes TagHelper attribute exposes only an int[] overload which prevents adding options such as "All".

In comparison to its HtmlHelper counterpart:

    .Pageable(paging => paging.PageSizes(new object [] { 5, 10, 20, "All" }))

Expected/desired behavior

It would be a good idea to consider altering the page sizes to accept an IEnumerable overload.

Environment

  • Kendo UI version: 2023.3.1010
  • jQuery version: x.y
  • Browser: [all]
Completed
Last Updated: 23 Oct 2023 14:33 by ADMIN
Release R1.2023-Increment.3(18.Jan.2023)

Bug report

The TagHelper Grid's TagHelper is not correctly serialized and cannot be used to export hidden columns.

Reproduction of the problem

  • Set the exportable TagHelper for a hidden column to enabled.
<columns>
    <column field="Discontinued" hidden="true">
         <exportable enabled="true" />
    </column>
</columns>			  
  • Open the following REPL example.
  • Export the Grid and observe the exported document.

Current behavior

The Grid TagHelper does not export hidden columns if the exportable TagHelper is enabled identically to the Kendo UI for jQuery Grid column exportable option.

Expected/desired behavior

The Grid TagHelper should be able to export hidden columns if the exportable TagHelper is enabled identically to the Kendo UI for jQuery Grid column exportable option.

Environment

  • Kendo UI version: 2022.3.1109
  • Browser: [all]
Completed
Last Updated: 19 Oct 2023 13:20 by ADMIN
Release R1.2024-Increment.1(15.Nov.2023)
Created by: SturmA
Comments: 0
Category: Grid
Type: Bug Report
0

### Bug report

When dragging and dropping a row within the Grid, the DOM element of the drag handle receives duplicated classes and styles.

### Reproduction of the problem

1) Enable the Drag & Drop functionality of the Grid.

2) Drag and drop a row within the Grid.

3) Inspect the DOM element of the drag handle - it has multiple duplicated classes and styles:

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


### Environment

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

Completed
Last Updated: 05 Oct 2023 08:43 by ADMIN
Release R3.2023-Increment.3(11.Oct.2023)

Overview

Currently, the ASP.NET Core Grid Columns's Template() method does not expose the ability to provide a delegate. In comparison to the ASP.NET MVC Grid Column's Template() method:

It would be useful to add this option to the ASP.NET Core Grid, as it will allow the configuration for multiline templates. For example:

.Columns(columns =>
{
    columns.Template(@<text>
        <div>#= OrderID # </div>
         <div>#= Discontinued # </div>
    </text>);
})

Current behavior

The Columns.Template() method of the Grid does expose a delegate overload.

Expected/desired behavior

The Columns.Template() method of the Grid should expose a delegate overload.

Environment

  • Kendo UI version: 2023.2.718
  • Browser: [all]
Unplanned
Last Updated: 25 Sep 2023 15:22 by erwin

I have noticed that neither the HtmlHelper nor the TagHelper wrappers of the Grid's Pageable.Pagesize configuration support the all option to be configured as a page size.

This is unlike the Kendo UI for jQuery pageSize option which supports it as per the example in the API:

 pageable: {
    pageSizes: [2, 3, 4, "all"],
    numeric: false
  }