Pending Review
Last Updated: 25 Jun 2024 21:16 by Al
Created by: Al
Comments: 0
Category: UI for Blazor
Type: Feature Request
1
Request the TelerikNotification supports MarkupString or HTML or at least Multiline text
Pending Review
Last Updated: 21 Jun 2024 14:34 by Scott
Created by: Scott
Comments: 0
Category: UI for Blazor
Type: Feature Request
1

We would like to see all the Blazor controls support the ability to show the time in the browser's local time as a feature that can be enabled.  It should support converted from both UTC and server time.

A question on how to do this has been asked at least twice on the forums:

Some examples of how other's have implemented this as a control can be founde here:

Thanks

Unplanned
Last Updated: 12 Jun 2024 06:20 by ADMIN
Created by: Jesper
Comments: 4
Category: UI for Blazor
Type: Bug Report
4
I am using MS Playwright to create End2End tests. It worked fine when we used MudBlazor, but after we migrated to telerik I have run into a problem with the TelerikDropDownList.

It stops working if you open it too fast. It goes into a state where no matter what you do (Rebind/changing data bound values etc.), it will not open and show items.

It can be reproduced easily by calling .Open() in OnInitializedAsync()

I have reproduced it without MS Playwright in REPL, so you can easily debug it.

https://blazorrepl.telerik.com/QIOUYoPc57iQKy6702

If you uncomment the await Task.Delay(3000); the code will work.

Expected behavior:
It is ok that Open() does nothing while the control is initializing. It is not ok that just because you called Open() once, then you are forever stuck without being able to open it later, no matter how long you wait or what you do with the items.

I do not want to insert random Delays in my code either as I expect the TelerikDropDownList to not malfunction just because I open it too early.

I hope you can prioritize this as right now the DropDownList is not usable for us.
Unplanned
Last Updated: 10 Jun 2024 21:22 by ADMIN
Created by: Justin
Comments: 4
Category: UI for Blazor
Type: Bug Report
3

When SelectOnFocus="true" is enabled on the NumericTextBox control, and a format (e.g., Format="N1") is set, the SelectOnFocus functionality does not select all text if the decimal value has no trailing digits. For instance, with the value 76, the text is not selected on focus, but with the value 76.1, the text is selected correctly.


<TelerikNumericTextBox @bind-Value="@DecimalValue" Format="N1" SelectOnFocus="true"/>

@code {
    private decimal DecimalValue = 76;
}

 

Steps to Reproduce:

  1. Add a NumericTextBox control to a Blazor Server application.
  2. Set SelectOnFocus="true".
  3. Set a format, e.g., Format="N1".
  4. Enter a value such as 76 (with no trailing digits after the decimal point).
  5. Focus on the NumericTextBox.

Expected Behavior: The entire text (in this case, 76.0) should be selected when the NumericTextBox gains focus.

Actual Behavior: The text is not selected when the NumericTextBox gains focus if the value has no trailing digits after the decimal point (e.g., 76). However, if the value includes trailing digits (e.g., 76.1), the text is selected as expected.

Declined
Last Updated: 05 Jun 2024 11:50 by ADMIN
Created by: Michal
Comments: 5
Category: UI for Blazor
Type: Bug Report
0

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

 

Unplanned
Last Updated: 31 May 2024 23:00 by Jonathan

I would like to have a boolean flag like ExpandDropdownOnFocus which when set to true and the component is focused the dropdown will be expanded.

ADMIN EDIT: When voting, please add your comment on how you would like this to be implemented. At the moment, there are two ideas:

  • A parameter that, when set to true, will make the dropdowns shop up when the component receives focus - less code, but solves only one specific scenario
  • An OnFocus event plus an instance method that opens the dropdown - a little more code (handle an event, populate a reference, call its method) which will provide more functionality and flexibility as the event will let you know that focus happened and you can add more logic (calculations, change CSS classes,...)
Planned
Last Updated: 31 May 2024 06:22 by ADMIN
Scheduled for 2024 Q3 (Aug)
Created by: Eugenie
Comments: 5
Category: UI for Blazor
Type: Feature Request
52

I would like the DropDownList to automatically detect the boundaries of the screen in order not to truncate items when the popup is opened.

 

===========

ADMIN EDIT

===========

The request is also valid for the rest of the popups including AutoComplete, ComboBox, Context Menu, MultiSelect.

This is also valid for the Window.

Declined
Last Updated: 27 May 2024 19:37 by George

See below repl

https://blazorrepl.telerik.com/GeYodYvp135zJH7N22

The first dropdown is populated correctly, it is not in a FormItem or Template

The second one, populated in the same way but inside a FormItem context does not show the data, it only redraws and shows data when entering another control i.e. the other working dropdown.

This was previously working when the application was using .net 6 and Telerik 3.6.1
It has since been updated to .net 8 and Telerik 5.1.1

What is the correct way to populate this?
Can you provide more information?

Thanks.

Duplicated
Last Updated: 27 May 2024 11:36 by ADMIN
Created by: Christian
Comments: 0
Category: UI for Blazor
Type: Feature Request
2

Please consider adding to Blazor UI a drop-down treeview component with:

  • multiple selections via checkboxes
  • expand/collapse
  • lazy loading on expand
  • tag mode

Example:

Blazor Dropdown Tree with checkboxes.

Thank you

Unplanned
Last Updated: 24 May 2024 14:31 by ADMIN

 

On the NumericTextBox example here

If you put the NumericTextBox in edit mode and hold the up or down key on the keyboard, the value auto increments/decrements.

1/ Can you please replicate this when the mouse is held down when clicking the up down spinner buttons? Users don't want to always use keyboard for this function.

2/ Can you add an acceleration property, eg when mouse/key is held down it increments at rate n1 for first few seconds, then after time s1 it will increment at rate n2 for remaining time mouse/key held?

Unplanned
Last Updated: 23 May 2024 13:46 by ADMIN
Created by: Maria
Comments: 4
Category: UI for Blazor
Type: Feature Request
59

I would like a comopnent similar to this one https://demos.telerik.com/kendo-ui/dropdowntree/index

The goal is to be able to show and select hierarchical data, because the multiselect is flat https://demos.telerik.com/blazor-ui/multiselect/overview

Duplicated
Last Updated: 22 May 2024 12:58 by ADMIN
Created by: Tung
Comments: 1
Category: UI for Blazor
Type: Bug Report
0

Hi,

 

Here is my demo DatePicker Demo

In Firefox, after I use the mouse to black all texts out, then DatePicker only selects the month field in the place holder. I expect to select all texts.

In Chrome or Edge, the DatePicker works as expected, after blacking texts out, it selects all texts in the place holder

Could you please check the issue?

 

Thanks and regards,

Tung

Unplanned
Last Updated: 22 May 2024 08:34 by ADMIN
Created by: NovaStor
Comments: 3
Category: UI for Blazor
Type: Feature Request
26

Hi.

 

I'd like to request the ability to use a TimeSpanPicker component in Blazor.

 

For example, see https://www.telerik.com/maui-ui/timespanpicker

 

Thank you.

Unplanned
Last Updated: 21 May 2024 14:15 by ADMIN

When filtering or editing a Grid with enum data, the Name property of their Display parameter is respected.

However, in the initial view mode of the Grid the Name property is not applied and the enum values are rendered regardless of whether or not their Display parameter has a Name property defined.

 

==========

ADMIN EDIT

==========

In the meantime, a workaround you might try is to create a custom method to check whether Display attribute is defined and get and display its Name property, otherwise display the Enum's member name.

You can then use a Template for the column that uses enum data, cast its context to the model you are using and invoke the method on the field containing the enum. The sample below demonstrates how you can achieve this.

@using System.ComponentModel.DataAnnotations
@using System.Reflection

<TelerikGrid Data=@MyData EditMode="@GridEditMode.Inline" Pageable="true" Height="500px"
             OnUpdate="@UpdateHandler" FilterMode="@GridFilterMode.FilterRow">
    <GridColumns>
        <GridColumn Field=@nameof(SampleData.ID) Editable="false" Title="ID" />
        <GridColumn Field=@nameof(SampleData.Name) Title="Name" />
        <GridColumn Field=@nameof(SampleData.Role) Title="Position">       
            <Template>
                @{
                    var currentEmployee = context as SampleData;
                    var currentRole = GetDisplayName(currentEmployee.Role);                        
                }

                @currentRole
            </Template>
        </GridColumn>
        <GridCommandColumn>
            <GridCommandButton Command="Save" Icon="save" ShowInEdit="true">Update</GridCommandButton>
            <GridCommandButton Command="Edit" Icon="edit">Edit</GridCommandButton>
        </GridCommandColumn>
    </GridColumns>
</TelerikGrid>

@code {
    //custom method to check whether Display attribute is defined and get and display its Name property, otherwise display the Enum's member name
    public string GetDisplayName(Enum val)
    {
        return val.GetType()
                  .GetMember(val.ToString())
                  .FirstOrDefault()
                  ?.GetCustomAttribute<DisplayAttribute>(false)
                  ?.Name
                  ?? val.ToString();
    }


    public void UpdateHandler(GridCommandEventArgs args)
    {
        SampleData item = (SampleData)args.Item;

        //update the view-model
        var index = MyData.FindIndex(i => i.ID == item.ID);
        if (index != -1)
        {
            MyData[index] = item;
        }

        //perform actual data source operations here
    }

    //model and dummy data generation
    public class SampleData
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public Role Role { get; set; }
    }

    public enum Role
    {
        [Display(Name = "Manager")]
        ManagerRole,
        [Display(Name = "Employee")]
        EmployeeRole,
        [Display(Name = "Contractor")]
        ContractorRole
    }

    public List<SampleData> MyData { get; set; }

    protected override void OnInitialized()
    {
        MyData = new List<SampleData>();

        for (int i = 0; i < 50; i++)
        {
            MyData.Add(new SampleData()
            {
                ID = i,
                Name = "name " + i,
                Role = (Role)(i % 3) // just some sample to populate initial values for the enum
            });
        }
    }
}

Declined
Last Updated: 15 May 2024 12:09 by ADMIN

Currently using Telerik.DataSource.QueryableExtensions.CreateDataSourceResult() results in queryable.Count() + queryable.Skip(...).Take(...). done seperatelly. EF Core specific tests are already present it seems, based on decompiled code, I can see: "if (!sort.Any() && queryable.Provider.IsEntityFrameworkProvider())". 

Request: Add support for other ORM's that are more capable than EF Core. In case of pagination, window-function could be used to save from extra count query. A short sample bellow:

var dbResults = await queryable
	.Select(x => new {
		Item = x,
		TotalCount = Sql.Ext.Count().Over().ToValue()
	})
	.Skip(() => offset)
	.Take(() => limit)
	.ToListAsync();

var count = dbResults.FirstOrDefault()?.TotalCount ?? 0;
var items = dbResults.Select(x => x.Item);

Read more about Window functions: https://statics.teams.cdn.office.net/evergreen-assets/safelinks/1/atp-safelinks.html 

Unplanned
Last Updated: 15 May 2024 08:33 by Ben
The IsEntityFrameworkProvider method in the DataSource package returns false when the provider is Entity Framework Core. 
Unplanned
Last Updated: 08 May 2024 08:40 by ADMIN
Created by: Thomas
Comments: 0
Category: UI for Blazor
Type: Feature Request
2

Hello,

We use extensively the features of Telerik WPF RadMap and are now migrating to Blazor. So we are trying to use TelerikMap to cover our needs.

TelerikMap doesn't support WMS (most important) and vector tile (nice to have) layers.

Implementing them directly is not really important but having some class available for us to override to implement our way could be enough.

In Telerik WPF RadMap, we had TiledProvider and TiledMapSource from which we made our own implementations to cover our needs (WMS with specific parameters mostly), we override the method GetTile and from here we can do whatever we want.

It would be nice to have the same system in Blazor

Thanks

Thomas

Under Review
Last Updated: 07 May 2024 06:05 by Peili
Created by: Peili
Comments: 2
Category: UI for Blazor
Type: Feature Request
1

Hi,

We use compact sized grid all the time in our application.

However, with sorting and filtering enabled, the icons take too much space in the header cell and make the actual header text hard to read.

Please consider scale down those icons and reduce padding.

Thanks and best regards,

Peili

 

Demo: https://blazorrepl.telerik.com/mSOIQZvO51cwrorJ49

Completed
Last Updated: 06 May 2024 12:02 by ADMIN
Release 2024 Q2 (May)

We find this in our infrastructure but it can be reproduced even in Telerik docs.

Docs page: https://docs.telerik.com/blazor-ui/components/grid/grouping/overview try to drop all three columns using drag and drop in sequence: Team, Name, On Vacation.

Expected sequence: Team, Name, On Vacation

Expected sequence: Team, On Vacation, Name

All Elements are always added as 1 item. It is an important feature for us, as our customers use it frequently.

===

TELERIK EDIT:

A possible workaround is to intercept the grouping and reorder the groups:

@using Telerik.DataSource

<p>Group by a third column, so that it should come last in the Group Panel:</p>

<TelerikGrid @ref="@GridRef"
             Data="@GridData"
             Pageable="true"
             Sortable="true"
             Groupable="true"
             FilterMode="GridFilterMode.FilterRow"
             OnStateInit="@( (GridStateEventArgs<Employee> args) => OnGridStateInit(args) )"
             OnStateChanged="@( (GridStateEventArgs<Employee> args) => OnGridStateChanged(args) )">
    <GridColumns>
        <GridColumn Field="@nameof(Employee.Name)" />
        <GridColumn Field="@nameof(Employee.Team)" />
        <GridColumn Field="@nameof(Employee.Salary)" />
        <GridColumn Field="@nameof(Employee.OnVacation)" />
    </GridColumns>
</TelerikGrid>

@code {
    private TelerikGrid<Employee>? GridRef { get; set; }

    private List<Employee> GridData { get; set; } = new();

    private void OnGridStateInit(GridStateEventArgs<Employee> args)
    {
        args.GridState.GroupDescriptors = new List<GroupDescriptor>();

        args.GridState.GroupDescriptors.Add(new GroupDescriptor()
        {
            Member = nameof(Employee.Team),
            MemberType = typeof(string)
        });

        args.GridState.GroupDescriptors.Add(new GroupDescriptor()
        {
            Member = nameof(Employee.OnVacation),
            MemberType = typeof(bool)
        });
    }

    private async Task OnGridStateChanged(GridStateEventArgs<Employee> args)
    {
        if (args.PropertyName == "GroupDescriptors" && args.GridState.GroupDescriptors.Count > 2 && GridRef != null)
        {
            var secondGroupDescriptor = args.GridState.GroupDescriptors.ElementAt(1);

            args.GridState.GroupDescriptors.Remove(secondGroupDescriptor);
            args.GridState.GroupDescriptors.Add(secondGroupDescriptor);

            await GridRef.SetStateAsync(args.GridState);
        }
    }

    protected override void OnInitialized()
    {
        var rnd = new Random();

        for (int i = 1; i <= 20; i++)
        {
            GridData.Add(new Employee()
            {
                Id = i,
                Name = "Name " + i,
                Team = "Team " + (i % 4 + 1),
                Salary = (decimal)rnd.Next(1000, 3000),
                OnVacation = i % 3 == 0
            });
        }
    }

    public class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; } = string.Empty;
        public string Team { get; set; } = string.Empty;
        public decimal Salary { get; set; }
        public bool OnVacation { get; set; }
    }
}

 

Completed
Last Updated: 06 May 2024 07:07 by ADMIN
Release 2024 Q2 (May)
Created by: Alois
Comments: 22
Category: UI for Blazor
Type: Feature Request
112

When is Spreadsheet for Blazor available or can i use Kendo Spreadsheat?

Regards

Alois Seidler 

1 2 3 4 5 6