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


Duplicated
Last Updated: 01 Mar 2021 07:38 by ADMIN
Created by: Ian
Comments: 1
Category: UI for Blazor
Type: Feature Request
5
A Kanban board would be a great addition for interactive planning.
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: 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.

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

 

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)
Unplanned
Last Updated: 25 Feb 2020 10:32 by ADMIN
If Possible a basic UI Layout manager for page layout and component layouts be nice, click and drag... something like radzen but working within Visual Studio..
Completed
Last Updated: 09 Nov 2020 18:12 by ADMIN
Release 2.19.0
Created by: Ben Hayat
Comments: 3
Category: UI for Blazor
Type: Feature Request
4
Hello Team;

This is more or less a question and request.
With the new "Lazy Loading" feature of Blazor .Net 5, is it possible that Telerik can use this feature internally, to load only components/library as the app needs it at runtime to save initial load time?

Thanks!
Unplanned
Last Updated: 18 Sep 2020 07:44 by ADMIN
Created by: Scott
Comments: 1
Category: UI for Blazor
Type: Feature Request
4
This is a feature request to update the Telerik Icons to include versions that better match iOS, Material and Fluent design.  The idea is to either default to same icon set or dynamically choose the icon set based on the device accessing the site.  This would be especially beneficial for hybrid applications.
Completed
Last Updated: 22 Jun 2021 19:26 by ADMIN
Release 2.25.0
Created by: Emanuel
Comments: 0
Category: UI for Blazor
Type: Feature Request
4

Hi

I would like a "Steper" as the one you have in your MVC product.