Unplanned
Last Updated: 18 Mar 2024 10:15 by Fanie

The Editor currently supports only numeric ordered list. I'm looking for an option to add different types of ordered lists - roman and alphabetical.

Please add support for these types of ordered lists similiar to the KendoReact Editor.

Unplanned
Last Updated: 15 Mar 2024 10:38 by Jonas
Created by: Jonas
Comments: 0
Category: LinearGauge
Type: Feature Request
1
I want to be able to draw custom elements on the LinearGauge. For example, a line, similar to what Minor and Major Ticks are, but at a custom position. 
Unplanned
Last Updated: 15 Mar 2024 10:36 by Jonas

I want to add custom background colors to different parts of the Scale based on the Ranges. For example, if the Linear Gauge goes from 1 to 100, I want to be able to make the color of the scale green from 1 to 25, yellow from 25 to 75, and red - from 75 to 100. 

I would also like to have the ability to add patterns, such as strikethrough to different parts of the Scale, as in the example above. 

Unplanned
Last Updated: 15 Mar 2024 10:33 by Jonas
Created by: Jonas
Comments: 0
Category: LinearGauge
Type: Feature Request
1
I want to add a custom text as a label to the pointer in the LinearGauge component. That text is meant to provide information to my users what the value is and possibly some additional context. 
Unplanned
Last Updated: 13 Mar 2024 13:40 by Brett
I am opening a standard PDF document and it is not properly displayed in the PDF Viewer. For example, you can see the logo and the table borders but the text of the PDF is missing. If you open the same document in a normal Adobe viewer it is fine.
Unplanned
Last Updated: 12 Mar 2024 15:17 by Joe

ADMIN EDIT: Please review this thread and add your comments so we can get the community feedback on this. We have attached to this opener post a small sample that shows how to achieve this with a few lines of code, and a short video of that behavior.

Hello Team;

The Grid Popup is a great feature, but my understanding is that the Popup form ONLY shows properties that are assigned as columns to the Grid.
If true, this poses some restrictions for us. Many times we might show ONLY small # of columns in Grid, however the form requires MORE properties during ADD or UPDATE.
Is it possible that we can use two ViewModels, one for the Grid columns with less properties and one with more properties for ADD & UPDATE?

Note: If this FR is considered, perhaps we can have separate ViewModel for Update and ADD, as sometimes, ADD might require more properties to be added than later be updated.

This feature will save a lot of time to build apps that have many tables and we have to create CRUD operations

Unplanned
Last Updated: 11 Mar 2024 13:21 by Dhiogo
We need to set a custom hint conditionally in the file select/upload drop zone, is there a solution for that?
Unplanned
Last Updated: 08 Mar 2024 14:39 by ADMIN
Created by: cmarsh
Comments: 9
Category: UI for Blazor
Type: Feature Request
36

I'm looking for what you have in WPF as we migrate ourselves over to Blazor - https://www.telerik.com/products/wpf/conversational-ui.aspx

---

ADMIN EDIT

For the time being, you can consider using the Kendo Chat widget as described in this sample project.

---

Unplanned
Last Updated: 08 Mar 2024 08:13 by ADMIN

The Editor is not showing its Value in the following scenario:

  • Using JSInterop in OnAfterRenderAsync
  • Setting the Editor Value in OnAfterRenderAsync and after the JSInterop call
  • Blazor Server app (seems to work in WebAssembly)

Possible workarounds are:

  • Set the Editor Value and call StateHasChanged() before using JSInterop in OnAfterRenderAsync, or
  • Add some small delay (for example, await Task.Delay(100); ) before using JSInterop.
Unplanned
Last Updated: 08 Mar 2024 00:45 by alex
Created by: alex
Comments: 2
Category: UI for Blazor
Type: Feature Request
0

Sometimes we need custom filter logic. 

The advised approach currently is to use the OnRead event and have to manage the fetching of data manually  https://docs.telerik.com/blazor-ui/components/grid/manual-operations

If we could set a column to use a filter function  that has Func<GridDataType, Bool>? then we could apply this complex filter without having to repeatedly query the database and apply filters server side. 

For example, if I wanted to filter a column that related to an object that had a property that was a Collection<T> I could check the values of this collection against a filter UI I have made somewhere in the grid or outside of it. Then when the columns filterdescriptior was reviewed it would check my Func which returned True if any of the Rows Collection<T> matched my custom filter UI options.

Example use case that this feature would allow; 

 
Unplanned
Last Updated: 07 Mar 2024 15:42 by Peili
Created by: Gerard
Comments: 2
Category: Splitter
Type: Feature Request
19

Hello,

I have a question regarding the persistence of content when blazor splitter panes are collapsed and expanded.

Please refer to the attached project to see the issue that I'm having.

Regards,

Gerard

Unplanned
Last Updated: 07 Mar 2024 13:11 by David
Created by: Nicolas
Comments: 3
Category: PDFViewer
Type: Feature Request
14
I would like to be able to control the default zoom level in the PDF viewer. For example, I would like to be able to set it as "Fit to Page". 
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: 06 Mar 2024 06:55 by ADMIN
Created by: Dan
Comments: 2
Category: Dialog
Type: Feature Request
11
Pressing the Enter key should trigger the Ok button in the Prompt Dialog
Unplanned
Last Updated: 05 Mar 2024 12:10 by ADMIN

I am working on a form where experienced agents need to input data quickly. Often enough they know the codes and so they can type them in the combo box, but they shouldn't have to look for the mouse to select the item, the combo box should select it when the user presses Tab to move to the next field.

This should happen only when the user has filtered the combo box so they see some items (and so the dropdown is open) - I want them to be able to select only items from the available options, AllowCustom does not work for me.

---

ADMIN EDIT

Here is one workaround you can consider:

 

@inject IJSRuntime _js

@* Move this script to a proper place in your project, the suppress-error hack is to keep it here in the component for easy copy-paste *@
<script suppress-error="BL9992">
    function getComboHighligtedItem() {
        // gets the currently focused item in this particular combobox
        var selItemElem = document.querySelector(".special-combobox .k-item.k-state-focused");
        if (selItemElem) {
            return selItemElem.innerText;
        }
    }
</script>

Selected value: @selectedValue
<br />

<TelerikComboBox OnBlur="@Test" PopupClass="special-combobox"
                 
                 Data="@myComboData" TextField="MyTextField" ValueField="MyValueField" @bind-Value="@selectedValue" 
                    Placeholder="Select an item..." ClearButton="true" Filterable="true" FilterOperator="@StringFilterOperator.Contains">
</TelerikComboBox>

<input placeholder="other form elements" />

@code {
    async Task Test()
    {
        string currInput = await _js.InvokeAsync<string>("getComboHighligtedItem");
        Console.WriteLine("--------------");
        Console.WriteLine(currInput);
        Console.WriteLine("--------------");
        // note - this relies on the item template of the combo rendering the text, or not being used at all
        // if you use other item templates, you may need to delve deeper in the DOM or otherwise recognize the item
        if (!string.IsNullOrEmpty(currInput))
        {
            // match the filter operation to the filter operator of the combo box - Contains in this sample
            var matchingItem = myComboData.Where(itm => itm.MyTextField.ToLowerInvariant().Contains(currInput.ToLowerInvariant())).FirstOrDefault();
            if (matchingItem != null)
            {
                selectedValue = matchingItem.MyValueField;
            }
        }

    }
   
    // just dummy data follows

    IEnumerable<MyDdlModel> myComboData = Enumerable.Range(1, 20).Select(x => new MyDdlModel { MyTextField = "item " + x, MyValueField = x });

    int selectedValue { get; set; }

    public class MyDdlModel
    {
        public int MyValueField { get; set; }
        public string MyTextField { get; set; }
    }
}

 

---

Unplanned
Last Updated: 04 Mar 2024 12:39 by Kristjan
Created by: Michał
Comments: 1
Category: UI for Blazor
Type: Bug Report
10

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
            });
        }
    }
}

Unplanned
Last Updated: 01 Mar 2024 18:19 by Wolfgang
Created by: Nick
Comments: 1
Category: UI for Blazor
Type: Feature Request
2

https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.forms.fieldcssclassprovider.getfieldcssclass?view=aspnetcore-6.0

The feature request is to provide a way for Telerik customers to define custom validation classes. It seems appropriate to have the FieldCssClassProvider override in Telerik components. Thus, if required customers would be able to apply custom styling and remove the default theme classes for valid and invalid state.

Related #1564471
Unplanned
Last Updated: 27 Feb 2024 18:30 by Dale
Created by: Radko
Comments: 1
Category: Popup
Type: Feature Request
2

I want a less-persistent popup, where a click outside of its boundaries would close it. To give a real world example, the share snippet feature in REPL works in such a way: https://blazorrepl.telerik.com

 

Workaround for the time being is attach a JS click handler, such as in the following example: https://blazorrepl.telerik.com/GyumGrEs22yZgoCD16

Unplanned
Last Updated: 26 Feb 2024 09:50 by David
Created by: David
Comments: 0
Category: Map
Type: Feature Request
1

Currently, the marker tooltip can be shown only when hovering the marker. I want to show the tooltip when the user clicks the marker.

Example use case:

I've included clickable elements in the tooltip. The tooltip is hidden as soon as the mouse leaves the marker and the user cannot interact with the tooltip elements.

1 2 3 4 5 6