Completed
Last Updated: 14 May 2020 08:39 by ADMIN
Release 2.10.0
Created by: shanthu
Comments: 0
Category: UI for Blazor
Type: Feature Request
5
I would like a simple list with templates for my items. Much like the grid, but not confined to cells and rows.
Completed
Last Updated: 05 Sep 2019 10:30 by ADMIN
Release 1.7.0

If filtering is enabled, the error may prevent the view from rendering  similar to NotImplementedException: Unexpected frame type during RemoveOldFrame: None.

Without filtering, an exception is thrown when you attempt to edit a field, similar to Error: System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Nullable`1[System.Int64]'.

Duplicated
Last Updated: 10 Feb 2021 16:24 by ADMIN
Created by: Andrzej
Comments: 1
Category: UI for Blazor
Type: Feature Request
5

I saw that DropDown TreeList is already in the to-do list, but I would like to even extend it by adding MultiSelect feature to it

So basically add MultiSelect but with TreeList inside

Regards

Andrzej


Unplanned
Last Updated: 05 Jan 2022 14:08 by ADMIN
Created by: Philip
Comments: 3
Category: UI for Blazor
Type: Feature Request
5

Hello

 

The column group headers functionality is great, however it messes with the export to excel/csv, as the headers no longer align on the 1 row.

 

Just seeing if there was a way to export to csv/excel but ignore the column group headers? Maybe a feature on the <GridCsvExport ExportGroupHeaders=false /> option?

 

Or is there a way to turn off column group headers programmatically? Then this could be removed then readded on the events; OnBeforeExport, OnAfterExport

 

Cheers

Phil

Completed
Last Updated: 26 May 2022 05:20 by ADMIN
Release 3.4.0
Created by: Chris
Comments: 0
Category: UI for Blazor
Type: Feature Request
5

We need this existing control in a Blazor based control:

https://www.telerik.com/aspnet-core-ui/skeleton-container

We'll need to fall back to MudBlazor who does support this control.

 

We are existing licensed users under AVEVA.

Unplanned
Last Updated: 27 Jan 2023 09:18 by ADMIN
Created by: Buddhi
Comments: 1
Category: UI for Blazor
Type: Bug Report
5
I am using Telerik blazor grid and it is groupable and can be edited cell itself. i have used a button to group the grid.but after grouping when i am going to edit a cell ,entire grid is getting loaded.
following you can see a my code sample .how we can edit cell without loading grid .


@using System.ComponentModel.DataAnnotations 

<TelerikButton ThemeColor="primary" OnClick="@SetGridGroup">Group</TelerikButton>


<TelerikGrid Data=@MyData EditMode="@GridEditMode.Incell" Pageable="true" Height="500px"
            OnUpdate="@UpdateHandler" 
            OnEdit="@EditHandler" 
            OnDelete="@DeleteHandler"
            OnCreate="@CreateHandler" 
            OnCancel="@OnCancelHandler"
            Groupable="true">
    <GridToolBarTemplate>
        <GridCommandButton Command="Add" Icon="@FontIcon.Plus">Add Employee</GridCommandButton>
    </GridToolBarTemplate>
    <GridColumns>
        <GridColumn Field=@nameof(SampleData.ID) Title="ID" Editable="false" />
        <GridColumn Field=@nameof(SampleData.FirstName) Title="Name" />
        <GridColumn Field=@nameof(SampleData.LastName) Title="Last Name" />

        <GridColumn Field=@nameof(SampleData.Team ) Title="Team" />
        <GridCommandColumn>
            <GridCommandButton Command="Delete" Icon="@FontIcon.Trash">Delete</GridCommandButton>
        </GridCommandColumn>
    </GridColumns>
</TelerikGrid>
@code {
    async Task SetGridGroup()
    {
        GridState<SampleData> desiredState = new GridState<SampleData>()
        {
            GroupDescriptors = new List<GroupDescriptor>()
            {
                new GroupDescriptor()
                {
                    Member = "Team",
                    MemberType = typeof(string)
                },
                
            },
            // choose indexes of groups to be collapsed (they are all expanded by default)
            CollapsedGroups = new List<int>() { 0 },
        };
        await Grid.SetStateAsync(desiredState);
    }
    void EditHandler(GridCommandEventArgs args)
    {
        SampleData item = (SampleData)args.Item;
        // prevent opening for edit based on conditionif (item.ID < 3)
        {
            args.IsCancelled = true;// the general approach for cancelling an event
        }
        Console.WriteLine("Edit event is fired.");
    }
    async Task UpdateHandler(GridCommandEventArgs args)
    {
        SampleData item = (SampleData)args.Item;
        await MyService.Update(item);
        await GetGridData();
        Console.WriteLine("Update event is fired.");
    }
    async Task DeleteHandler(GridCommandEventArgs args)
    {
        SampleData item = (SampleData)args.Item;
        await MyService.Delete(item);
        await GetGridData();
        Console.WriteLine("Delete event is fired.");
    }
    async Task CreateHandler(GridCommandEventArgs args)
    {
        SampleData item = (SampleData)args.Item;
        await MyService.Create(item);
        await GetGridData();
        Console.WriteLine("Create event is fired.");
    }
    void OnCancelHandler(GridCommandEventArgs args)
    {
        SampleData item = (SampleData)args.Item;
        Console.WriteLine("Cancel event is fired. Can be useful when people decide to not satisfy validation");
    }
    public class SampleData
    {
        publicint ID { get; set; }
        [Required]
        public string FirstName { get; set; }
        public string LastName { get; set; }

        public string Team {get;set;}
    }
    public List<SampleData> MyData { get; set; }
    async Task GetGridData()
    {
        MyData = await MyService.Read();
    }
    protected override async Task OnInitializedAsync()
    {
        await GetGridData();
    }
   publicstaticclassMyService
    {
        private static List<SampleData> _data { get; set; } = new List<SampleData>();
        public static async Task Create(SampleData itemToInsert)
        {
            itemToInsert.ID = _data.Count + 1;
            _data.Insert(0, itemToInsert);
        }
        publicstaticasync Task<List<SampleData>> Read()
        {
            if (_data.Count < 1)
            {
                for (int i = 1; i < 50; i++)
                {
                    _data.Add(new SampleData()
                    {
                        ID = i,
                        FirstName = "Name " + i.ToString(),
                        LastName = "Last Name " + i.ToString(),

                        Team="Team" +(i%5).ToString()
                    });
                }
            }
            returnawait Task.FromResult(_data);
        }
        public static async Task Update(SampleData itemToUpdate)
        {
            var index = _data.FindIndex(i => i.ID == itemToUpdate.ID);
            if (index != -1)
            {
                _data[index] = itemToUpdate;
            }
        }
        public static async Task Delete(SampleData itemToDelete)
        {
            _data.Remove(itemToDelete);
        }
    }
}


Completed
Last Updated: 08 Jun 2023 07:47 by ADMIN
Release 4.4.0 (07/19/2023) (R3 PI1)
Created by: Ivaylo
Comments: 1
Category: UI for Blazor
Type: Bug Report
5

Hello there,

I encountered an issue with the TelerikGrid component. This started to be an issue from version 4.1.0 and can be reproduced from here:

https://docs.telerik.com/blazor-ui/components/grid/columns/visible#toggle-the-visibility-of-a-column-on-button

If this line from the example:

<GridColumn Field=@nameof(SampleData.Name) Title="Name" />
is changed to:

<GridColumn Field=@nameof(SampleData.Name) Title="Name" Visible="@!isVisible">
    <Template>
       @((context as SampleData).Name)
     </Template>
</GridColumn>

you can see that once the template GridColumn is shown, its data overwrites the data of the "Hire Date" column when toggling the visibility of the columns. The header of the column is changing but the data stays the same.

To provide a visual context of the issue, I have attached a video.

 

Best regards,

Ivaylo

Unplanned
Last Updated: 28 Jun 2023 20:19 by Sebastiaan
Created by: Sebastiaan
Comments: 0
Category: UI for Blazor
Type: Feature Request
5
Please include symbols in the package to support source-level debugging by which the developer can either have the source code downloaded automatically or download it separately and point the debugger to the source code.
Unplanned
Last Updated: 13 Sep 2023 07:29 by ADMIN

Currently, the AdaptiveMode.Auto in Blazor Hybrid has to be defined at the component level. 

It would be nice if it could be globally defined at the TelerikRootComponent level.

As an additional possibility...

The current ASP.NET Ajax Telerik Controls, there is a property for Rendering -- Lightweight mode, Classic mode, etc. This can be defined at the control level, the custom control level, the page level and globally in web.config.

It would be great if this property AdaptiveMode could be defined in a similar way -- control level, custom Blazor component level, Razor page level or global level.  If I understand correctly, much of the specific CSS styling can be done at different levels in Blazor.  This would be similar.

Regards,
Dennis

Unplanned
Last Updated: 01 Nov 2023 10:46 by ADMIN
Created by: Nicholas
Comments: 0
Category: UI for Blazor
Type: Feature Request
5
Similar to what you have in other products (Like Angular)  Enable optional mouse wheel support to increment / decrement.  Also support when you hold down the up / down it will scroll as well.  Both should be configurable parameters to enable in case you do not want it.
Declined
Last Updated: 15 Dec 2023 09:14 by ADMIN

Hi,

It would be VERY helpful if you integrated "Prevent the Grid from wrapping text in multiple lines and show ellipsis" into grid as an option (so we would not have to write separate code and style).

I think this is one of the most needed features since grids almost always have data that wraps line.

BR, Smiljan

Unplanned
Last Updated: 07 Mar 2024 08:56 by ADMIN

Sometimes the Gantt provides better visibility when we can split tasks into segments on the same row. This is a new feature to SyncFusion and would be very useful to extend the possibilities of the Telerik Gantt as well.

This is an example of what it looks like:

I could make use of this in a couple of ways. Some of my tasks require to get to a preliminary point at a certain time and a finished point later. Those are not continuous buckets of work, but they are so closely related that it would make visual presentation more intuitive and simpler if they were displayable that way.

I might also use this as a method of displaying a higher level read-only gantt where I want to condense a few milestones or task windows into a single row.

Unplanned
Last Updated: 12 Apr 2024 10:37 by Ehsan
Created by: Ehsan
Comments: 0
Category: UI for Blazor
Type: Feature Request
5
Add support for the Hijri (Islamic) calendar for all date components (DateInput, DatePicker, DateTimePicker, DateRangePicker, Calendar). 
Declined
Last Updated: 14 Mar 2025 16:21 by Jonathan
Created by: Michal
Comments: 8
Category: UI for Blazor
Type: Bug Report
5

Hi,

starting with version 6.0, dialogs used together with loading indicator are at wrong z-index order.

- None of hotfixes with "delay" helped.

- users are stucked and cant confirm anything

How to replicate

Click on "Show Confirm with loading indicator". Loading animation should be at BACK of confirm dialog(as at older versions, prior 6.0)

https://blazorrepl.telerik.com/GeOfQMkt56AMkdof43

 

Declined
Last Updated: 09 Jul 2025 08:54 by ADMIN

Hi Telerik Team!

We’ve noticed that your official website uses anchor scrolling (clicking on links to scroll to specific sections smoothly), and we’d love to see that as a Telerik Blazor component.

This would be super useful in scenarios where:

  • The only way to present content is via long scrollable pages

  • Tabs aren’t a good UX fit

What we’re looking for:

-Smooth scrolling to internal page anchors (sections)

-Scrollspy-like feature to highlight active section

-Optional scroll offset for sticky headers

-Lightweight, flexible integration (with or without Telerik Form/Layout components)

 

We feel this would be a great addition to the Telerik Blazor suite — especially for documentation-style pages, long forms, or configuration panels.

Thanks a lot and keep up the awesome work!

Best regards,
Bohdan

Completed
Last Updated: 03 Jul 2019 11:45 by ADMIN
Release 1.3.0
Created by: Brandon
Comments: 0
Category: UI for Blazor
Type: Feature Request
4

At the moment, dropdown and popups (like the DatePicker and DropDownList) render in the place of declaration, and CSS rules from their parent elements affect them heavily (for example, they are hidden behind grid cells when used as custom editors).

The popups should be detached and rendered higher in the DOM if possible, so they don't get confined in their parent like that. This may be applicable for more components as well.

Declined
Last Updated: 03 Jun 2019 12:30 by Andrew
Created by: Andrew
Comments: 2
Category: UI for Blazor
Type: Feature Request
4

All controls (such as TelerikGrid, TelerikDropDownList, etc) should have a "Visible" property. This bindeable boolean value controls whether the control is visible on the page or not:

<TelerikGrid Visible="@IsVisible" />

@functions {

protected bool IsVisible

}

This is a much better method than surrounding the entire control's markup in an @if(IsVisible) block, since that causes the control to get removed/added to the dom at runtime. This can cause many issues such as the control's constructors being fired multiple times, the dom getting "jiggled" about unecessarily.

I feel the "Visible" property is a cleaner way to hide controls.

Duplicated
Last Updated: 02 Mar 2020 12:51 by ADMIN
Created by: Datafyer
Comments: 4
Category: UI for Blazor
Type: Feature Request
4

In many cases in a grid you may have additional data that the user can view however you don't want to show it as a default.

In these cases it would be nice to create the column normally, set the visible="false", and then have a built in column chooser feature.
This chooser would be a simple popup with a list of columns where the user can check whether visible or not.

Duplicated
Last Updated: 25 Oct 2024 11:19 by ADMIN
Created by: Manu
Comments: 3
Category: UI for Blazor
Type: Feature Request
4
Accordion control
Completed
Last Updated: 12 Feb 2020 09:48 by ADMIN
Release 2.7.1
Created by: Marco
Comments: 1
Category: UI for Blazor
Type: Feature Request
4

When you have LazyLoading() enabled on an EF context, the grid throws errors similar to

 

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.NotImplementedException: This is a DynamicProxy2 error: The interceptor attempted to 'Proceed' for method 'Void set_LazyLoader(Microsoft.EntityFrameworkCore.Infrastructure.ILazyLoader)' which has no target. 

 

Here is a sample of the service registration that causes the issue

 

            services.AddDbContext<ApplicationDbContext>(options =>
            options
            .UseLazyLoadingProxies() // this causes the problem
            .UseSqlServer(Configuration.GetConnectionString("DefaultConnection")), ServiceLifetime.Transient);

 

Here is the full stack trace

Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer: Warning: Unhandled exception rendering component: Object reference not set to an instance of an object.

System.NullReferenceException: Object reference not set to an instance of an object.
   at Telerik.Blazor.Components.Grid.GridContentCell`1.get_PropInfo()
   at Telerik.Blazor.Components.Grid.GridContentCell`1.get_Value()
   at Telerik.Blazor.Components.Grid.GridContentCell`1.BuildRenderTree(RenderTreeBuilder __builder)
   at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderInExistingBatch(RenderQueueEntry renderQueueEntry)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue()
Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost: Error: Unhandled exception in circuit '-ctJ-ctr0bp4mytl5k9AxUWcoK3LyC8ybsC6BxFhGhA'.

System.NullReferenceException: Object reference not set to an instance of an object.
   at Telerik.Blazor.Components.Grid.GridContentCell`1.get_PropInfo()
   at Telerik.Blazor.Components.Grid.GridContentCell`1.get_Value()
   at Telerik.Blazor.Components.Grid.GridContentCell`1.BuildRenderTree(RenderTreeBuilder __builder)
   at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderInExistingBatch(RenderQueueEntry renderQueueEntry)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue()
[2020-01-31T17:09:22.390Z] Error: System.NullReferenceException: Object reference not set to an instance of an object.
   at Telerik.Blazor.Components.Grid.GridContentCell`1.get_PropInfo()
   at Telerik.Blazor.Components.Grid.GridContentCell`1.get_Value()
   at Telerik.Blazor.Components.Grid.GridContentCell`1.BuildRenderTree(RenderTreeBuilder __builder)
   at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderInExistingBatch(RenderQueueEntry renderQueueEntry)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue()
[2020-01-31T17:09:22.393Z] Information: Connection disconnected.
Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer: Warning: Unhandled exception rendering component: Exception has been thrown by the target of an invocation.

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.NotImplementedException: This is a DynamicProxy2 error: The interceptor attempted to 'Proceed' for method 'Void set_LazyLoader(Microsoft.EntityFrameworkCore.Infrastructure.ILazyLoader)' which has no target. When calling method without target there is no implementation to 'proceed' to and it is the responsibility of the interceptor to mimic the implementation (set return value, out arguments etc)
   at Castle.DynamicProxy.AbstractInvocation.ThrowOnNoTarget()
   at Castle.DynamicProxy.Internal.CompositionInvocation.EnsureValidTarget()
   at Castle.Proxies.Invocations.IProxyLazyLoader_set_LazyLoader.InvokeMethodOnTarget()
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.DynamicProxy.StandardInterceptor.PerformProceed(IInvocation invocation)
   at Castle.DynamicProxy.StandardInterceptor.Intercept(IInvocation invocation)
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.Proxies.AttivitaProxy.set_LazyLoader(ILazyLoader value)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
   at Telerik.Blazor.Components.TelerikGridBase`1.Clone(TItem original)
   at Telerik.Blazor.Components.TelerikGridBase`1.Edit(GridCommandEventArgs args)
   at Telerik.Blazor.Components.TelerikGridBase`1.ExecuteCommand(Object args)
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Telerik.Blazor.Components.Grid.GridRowBase`1.OnExecuteCommand(GridCommandEventArgs commandArgs)
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Telerik.Blazor.Components.Grid.GridContentCell`1.ExecuteCommandAsync(String commandName)
   at Telerik.Blazor.Components.Grid.GridContentCell`1.EditAsync()
   at Telerik.Blazor.Components.Grid.GridContentCell`1.OnClick()
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle)
Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost: Error: Unhandled exception in circuit '-ctJ-ctr0bp4mytl5k9AxUWcoK3LyC8ybsC6BxFhGhA'.

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.NotImplementedException: This is a DynamicProxy2 error: The interceptor attempted to 'Proceed' for method 'Void set_LazyLoader(Microsoft.EntityFrameworkCore.Infrastructure.ILazyLoader)' which has no target. When calling method without target there is no implementation to 'proceed' to and it is the responsibility of the interceptor to mimic the implementation (set return value, out arguments etc)
   at Castle.DynamicProxy.AbstractInvocation.ThrowOnNoTarget()
   at Castle.DynamicProxy.Internal.CompositionInvocation.EnsureValidTarget()
   at Castle.Proxies.Invocations.IProxyLazyLoader_set_LazyLoader.InvokeMethodOnTarget()
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.DynamicProxy.StandardInterceptor.PerformProceed(IInvocation invocation)
   at Castle.DynamicProxy.StandardInterceptor.Intercept(IInvocation invocation)
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.Proxies.AttivitaProxy.set_LazyLoader(ILazyLoader value)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
   at Telerik.Blazor.Components.TelerikGridBase`1.Clone(TItem original)
   at Telerik.Blazor.Components.TelerikGridBase`1.Edit(GridCommandEventArgs args)
   at Telerik.Blazor.Components.TelerikGridBase`1.ExecuteCommand(Object args)
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Telerik.Blazor.Components.Grid.GridRowBase`1.OnExecuteCommand(GridCommandEventArgs commandArgs)
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Telerik.Blazor.Components.Grid.GridContentCell`1.ExecuteCommandAsync(String commandName)
   at Telerik.Blazor.Components.Grid.GridContentCell`1.EditAsync()
   at Telerik.Blazor.Components.Grid.GridContentCell`1.OnClick()
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle)