Planned
Last Updated: 25 Jan 2022 14:51 by improwise
Created by: Eric
Comments: 10
Category: Grid
Type: Feature Request
20

I would like to be able to customize the title in Editing Popup. 

 

<AdminEdit>

We plan to expose the following customization options:

  • Title,
  • Width
  • Height
  • MaxWidth
  • MaxHeight

</AdminEdit>

Planned
Last Updated: 13 Jan 2022 09:40 by ADMIN
Scheduled for 3.1.0
Created by: Ivan
Comments: 0
Category: Gantt
Type: Feature Request
1
I would like to use Popup editing, and Inline editing as I am able to do so in the TreeList component. 
Planned
Last Updated: 10 Jan 2022 19:19 by ADMIN
Created by: Richard
Comments: 0
Category: Editor
Type: Feature Request
7

An event that we can hook into so that we can take the (presumably) base64 encoded image (link), upload it somewhere, and then replace it with an image element set to the uploaded imaged file. Ideally, that would work for other content too.

*** Thread created by admin on customer behalf ***

Planned
Last Updated: 06 Jan 2022 09:06 by ADMIN
Scheduled for 3.1.0
Created by: Jack
Comments: 5
Category: TreeList
Type: Feature Request
7
Need an OnRowDoubleClick event for editing purposes.
Planned
Last Updated: 06 Jan 2022 06:28 by ADMIN
Scheduled for 3.1.0
Created by: Alberto
Comments: 5
Category: Menu
Type: Feature Request
29

At the moment, when you click a menu item it does not hide.

A method can be exposed to hide the expanded items that can be invoked from the OnClick handler.

---

ADMIN EDIT

Here is a potential workaround - when the menu item is clicked, we use a little bit of JS to go over the menu items at the root and make the browser think that the user moved the mouse away from them which is the signal for the menu dropdowns to hide. Do test this carefully before using in production, though.

@inject IJSRuntime _js

@* Move this script together with other scripts in the project, it is here to make the snippet shorter *@
<script suppress-error="BL9992">
    function closeMenu() {
        setTimeout(function () {
            var mouseLeaveEvent = new Event('mouseleave');
            var rootNodes = document.querySelectorAll("li.k-menu-item");
            rootNodes.forEach(function (elem) { elem.dispatchEvent(mouseLeaveEvent); })
        }, 30);
    }
</script>

<TelerikMenu Data="@MenuItems"
                ItemsField="@nameof(MenuItem.SubSectionList)"
                TextField="@nameof(MenuItem.Section)"
                UrlField="@nameof(MenuItem.Page)"
                OnClick="@((MenuItem item) => OnClickHandler(item))">
</TelerikMenu>

@code {
    public List<MenuItem> MenuItems { get; set; }

    async Task OnClickHandler(MenuItem item)
    {
        await _js.InvokeVoidAsync("closeMenu");
    }



    public class MenuItem
    {
        public string Section { get; set; }
        public string Page { get; set; }
        public List<MenuItem> SubSectionList { get; set; }
    }

    protected override void OnInitialized()
    {
        MenuItems = new List<MenuItem>()
                {

            new MenuItem()
            {
                Section = "fetchdata",
                Page = "fetchdata"

            },
            new MenuItem()
            {
                Section = "counter",
                Page = "counter"
            },

// sample URLs for SPA navigation
new MenuItem()
{
    Section = "Company",
    SubSectionList = new List<MenuItem>()
                        {
        new MenuItem()
        {
            Section = "Overview",
            Page = "fetchdata"
        },
        new MenuItem()
        {
            Section = "Events",
            Page = "fetchdata"
        },
        new MenuItem()
        {
            Section = "Careers",
            Page = "counter"
        }
    }
},
// sample URLs for external navigation
new MenuItem()
{
    Section = "Services",
    SubSectionList = new List<MenuItem>()
                        {
        new MenuItem()
        {
            Section = "Consulting",
            Page = "counter"
        },
        new MenuItem()
        {
            Section = "Education",
            Page = "fetchdata"
        }
    }
},
new MenuItem()
{
    Section = "Contact",
    Page = "counter"
}
};

        base.OnInitialized();
    }
}

---

Planned
Last Updated: 06 Jan 2022 06:28 by ADMIN
Scheduled for 3.1.0
Created by: Matthias
Comments: 2
Category: Notification
Type: Feature Request
19
I would like to have a method for the reference of the component which will allow me to close the notifications, for example - Close().
Planned
Last Updated: 06 Jan 2022 06:27 by ADMIN
Scheduled for 3.1.0
Created by: Wei
Comments: 2
Category: Tooltip
Type: Feature Request
6

How can I set the tooltip to show/hide programmatically? right not it only supports hover or click show action.

---

ADMIN EDIT

You can Follow a way to hide the tooltip programmatically here: https://feedback.telerik.com/blazor/1476364-close-tooltip-via-method.

You can find a way to hack the show event by triggering a JS click in this KB article: https://docs.telerik.com/blazor-ui/knowledge-base/common-validation-error-in-tooltip.

Here is an example that shows how you can trigger the tooltip to show for a particular target:

@inject IJSRuntime _js

<script suppress-error="BL9992">
    function triggerTooltip(index, selector, showOnClick) {
        var targets = document.querySelectorAll(selector);
        if (targets && targets.length >= index) {
            var desiredTarget = targets[index];//feel free to get the desired target in any other way
            setTimeout(function () {
                var evt = document.createEvent('MouseEvent');
                var evtToSimulate = showOnClick ? "click" : "mouseenter";
                evt.initEvent(evtToSimulate, true, false);
                desiredTarget.dispatchEvent(evt);
            }, 20);
        }
    }
</script>

<TelerikButton OnClick="@( async () => await TriggerTooltip(0) )">Trigger tooltip for the first target</TelerikButton>
<TelerikButton OnClick="@( async () => await TriggerTooltip(1) )">Trigger tooltip for the SECOND target</TelerikButton>

<TelerikTooltip TargetSelector="@ttipTargetSelector" ShowOn="@ShowOnSetting">
</TelerikTooltip>



<p id="my-targets">
    <strong title="what is 'lorem ipsum'?">lorem</strong>
    ipsum dolor
    <strong title="is this a real word?">sit</strong>
    amet.
</p>

@code{
    string ttipTargetSelector = "p#my-targets [title]";
    TooltipShowEvent ShowOnSetting { get; set; } = TooltipShowEvent.Click;
    async Task TriggerTooltip(int targetIndex)
    {
        await _js.InvokeVoidAsync("triggerTooltip", 
                targetIndex, 
                ttipTargetSelector, 
                ShowOnSetting == TooltipShowEvent.Click ? true : false
             );
    }
}

---

Planned
Last Updated: 06 Jan 2022 06:27 by ADMIN
Expose an OnItemRender event, which is raised for each menu item. The args will allow setting a Class, that will be applied at the topmost element of the item iteself, allowing full customization, as well as PopupClass, which is applied to the topmost element of the item popup.
Planned
Last Updated: 06 Jan 2022 06:27 by ADMIN
Created by: Andrew
Comments: 2
Category: ComboBox
Type: Feature Request
20

I would like to change the text in the ComboBox dropdown when there is no data in the source collection.

At the moment the only option is through localization for all instances like here.

Planned
Last Updated: 06 Jan 2022 06:25 by ADMIN
Scheduled for 3.1.0
Created by: Timothy J
Comments: 1
Category: NumericTextBox
Type: Feature Request
3

Can NumericTextBox Format Be Updatedat run time?  In other words, if numerictextbox is being used for dimensions and the user changes the preferred dimensional unit from "centimeters" to "inches" can the Format be changed from "0.## cm" to "0.## in" at runtime?

Same applies if I want to dynamically change the Decimals or Step values. Currently it looks like a dynamic change in the NumericTextBox parameters is not possible.

---

ADMIN EDIT

Here is a workaround that re-initializes the component:

 

<TelerikButton OnClick="@ChangeFormat">Change format</TelerikButton>
<br />
The value is: @theValue
<br />
@if (isVisible) {
<TelerikNumericTextBox Format="@theFormat" Max="5m" Min="-5m" Step="0.33m" @bind-Value="@theValue"></TelerikNumericTextBox>
}
@code {
    private decimal theValue { get; set; } = 1.234m;
    string theFormat { get; set; } = "0.## cm";

    bool isVisible { get; set; } = true;
    async Task ChangeFormat()
    {
        //workaround
        isVisible = false;
        await Task.Delay(30);
        await InvokeAsync(StateHasChanged);

        // change the format
        theFormat = "0.## in";

        //workaround
        isVisible = true;
        //await InvokeAsync(StateHasChanged);
    }
}

 

---

Planned
Last Updated: 06 Jan 2022 06:25 by ADMIN
Scheduled for 3.1.0
I am using a bool property to control whether the rows of the Grid would be draggable. When I try to toggle the value of this property the feature is not enabled or disabled accordingly. 
Planned
Last Updated: 06 Jan 2022 06:25 by ADMIN
Scheduled for 3.1.0

<TelerikScheduler AllowCreate="@Editing" AllowDelete="@Editing" AllowUpdate="@Editing" OnDelete="@AppointmentDelete" OnEdit="@AppointmentEdit" OnUpdate="AppointmentUpdate"  Data=…

The above line breaks only with AllowUpdate.

I default Editing false, then toggle it true in the hosting component and do a InvokeAsync(StateHasChanged). 

The result is I can create and delete, but while the appointment hover cursor changes to the hand or arrows and I can see the handlebars to resize the appointment, I'm not able to update the appointment until I switch the SchedulerView. After switching SchedulerView updating works as expected.

Planned
Last Updated: 22 Dec 2021 09:18 by ADMIN
the dropdown options display correctly until some come from a second service call.

The problem is that if the selected option is in the options added later then it does not show it as the selected value.

Example below shows correct function for "6" but incorrect for "7".

---

ADMIN EDIT

Here is a reproducible with the workaround highlighted in green:

 

@using System.Collections.ObjectModel

<h4>Option Selected: 6 @selectedSix</h4>
<br />

<TelerikDropDownList Data="@myDdlData"
                     TextField="MyTextField"
                     ValueField="MyValueField"
                     @bind-Value="@selectedSix" />

<h4>Option Selected: 7 @selectedSeven</h4>
<br />

<TelerikDropDownList Data="@myDdlData"
                     TextField="MyTextField"
                     ValueField="MyValueField"
                     @bind-Value="@selectedSeven">
</TelerikDropDownList>

<TelerikButton OnClick="@AddOption">Add Item</TelerikButton>

<ul>
    @foreach (var item in myDdlData)
    {
        <li>@item.MyValueField</li>
    }
</ul>

@code {
    int selectedSix { get; set; } = 6;
    int selectedSeven { get; set; } = 7;

    ObservableCollection<MyDdlModel> myDdlData = new ObservableCollection<MyDdlModel>(Enumerable.Range(1, 5).Select(x => new MyDdlModel { MyTextField = "item " + x, MyValueField = x }));

    protected override async Task OnInitializedAsync()
    {
        AddOption();

        await Task.Delay(TimeSpan.FromSeconds(1));

        AddOption();
    }

    void AddOption()
    {
        myDdlData.Add(new MyDdlModel { MyTextField = "item " + (myDdlData.Count + 1), MyValueField = myDdlData.Count + 1 });

        int origSelection = selectedSeven;
        selectedSeven = 0;
        StateHasChanged();
        //add this if it does not work
        //await Task.Delay(30);//wait a rendering frame
        selectedSeven = origSelection;
        //add this if it does not work
        //StateHasChanged();
    }

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

 

Note: This behavior also occurs if the initial data is received after the component is initialized. The workaround in this case will be similar - set the selected value after the data is received.

---

Planned
Last Updated: 20 Dec 2021 08:49 by ADMIN

When you open the Modal Window, try to drag it through a page that has a vertical scrollbar. The Modal Window is moving away from the cursor. This can be seen in our Modal Window demo too. If there is no vertical scrollbar on the page, the Modal Window dragging is working properly.

<div style="height:400px;"></div>
<TelerikButton Icon="window" OnClick=@(()=> WindowVisible = true)>Open Modal</TelerikButton>
<div style="height:400px;"></div>

<TelerikWindow Class="demo-window" Width="500px" Height="300px" Centered="true" @bind-Visible=@WindowVisible Modal="true">
    <WindowTitle>
        <strong>Modal Window</strong>
    </WindowTitle>
    <WindowActions>
        <WindowAction Name="Close" />
    </WindowActions>
    <WindowContent>
        <p>Click the close button to dismiss this modal dialog.</p>
    </WindowContent>
</TelerikWindow>

@code { public bool WindowVisible { get; set; } }

<style type="text/css">
    .demo-window {
        z-index: 44444;
    }
</style>

Reproduction steps:

  1. Open the Modal Window
  2. Try to drag it across the page
  3. Try to scroll when you have the Window opened

Reproduction happens in the demo too here: https://demos.telerik.com/blazor-ui/window/modal

Planned
Last Updated: 15 Dec 2021 14:00 by ADMIN

If the TextArea component is used within an EditorTemplate of a grid column, edit mode is always closed upon hitting ENTER.  The thing is that I'm using the TextArea to allow the user to input several lines.  Upon Enter the user wants to move to a new line within the TextArea and not to finish the edit mode.

Regards,

René

---

ADMIN EDIT

For the time being I can offer using the popup editing or a custom external edit form (inline or popup).

Another workaround would be to stop the keydown event propagation so the grid/treelist cannot consume it and close the cell:

 

        <TreeListColumn Field="EmailAddress" Width="220px">
            <EditorTemplate>
                @{
                    CurrentlyEditedEmployee = context as Employee;
                    <div @onkeydown:stopPropagation="true">
                        <TelerikTextArea @bind-Value="@CurrentlyEditedEmployee.EmailAddress"></TelerikTextArea>
                    </div>
                }
            </EditorTemplate>
        </TreeListColumn>

 

It is possible that the grid might stop handling Enter when editor templates are present so you can use the events from the custom editor as desired to invoke the save operation. This could happen through the following request: https://feedback.telerik.com/blazor/1493770-ability-to-prevent-multiple-calls-of-async-updatehandler-when-pressing-enter-in-incell-edit-mode. With or without it, it is highly likely that the approach of preventing the event propagation is the correct one because the grid cannot know what the editor template contains and handle events differently based on that.

 

---

Planned
Last Updated: 15 Dec 2021 13:59 by ADMIN
Create a page that hosts a TreeView with checkbox selection inside a TelerikWindow. Provide an initially checked item and navigate to this page. When it renders the checkbox is not in a checked state. 
Planned
Last Updated: 15 Dec 2021 13:59 by ADMIN

Hello,

I am using DialogFactory in a Blazor server app with PreRendering disabled.

It appears to cause more than expected OnParametersSet calls - its firing 2-6 times per page opening. Without DialogFactory it fires only once.

Planned
Last Updated: 15 Dec 2021 13:59 by ADMIN

Here is a TelerikForm with a FormItem (1) for a boolean field. Another FormItem (2) should render, depending on the boolean field (1). This does not work with a TelerikForm, but works with a standard EditForm.

The workaround for a TelerikForm is to use a FormItem Template with a TelerikCheckBox. This is demonstrated below as well.

<EditForm Model="@_data">
    <label>Condition 1 (InputCheckbox):</label>
    <InputCheckbox @bind-Value="@_data.Value1" />
    <br />
    @if (_data.Value1)
    {
        <label>Result 2</label>
        <InputCheckbox DisplayName="Result 2:" @bind-Value="@_data.Value2"></InputCheckbox>
    }
</EditForm>

<h1>TelerikForm</h1>

<TelerikForm Model="@_data">
    <FormItems>
        <FormItem LabelText="Condition 1 (FormItem):" Field="@nameof(_data.Value1)"></FormItem>
        <FormItem>
            <Template>
                <label for="x">Condition 1 (TelerikCheckBox):</label>
                <br />
                <TelerikCheckBox Id="x" @bind-Value="_data.Value1" />
            </Template>
        </FormItem>
        @if (_data.Value1)
        {
            <FormItem LabelText="Result 2:" Field="@nameof(_data.Value2)"></FormItem>
        }
    </FormItems>
</TelerikForm>

@code {
    private ExampleDto _data { get; set; } = new ExampleDto();

    public class ExampleDto
    {
        public string TextValue { get; set; }
        public bool Value1 { get; set; }
        public bool Value2 { get; set; }
    }
}

Planned
Last Updated: 15 Dec 2021 13:59 by ADMIN
Created by: Zachary
Comments: 1
Category: TimePicker
Type: Bug Report
12

The TimePicker scroll wheels are janky and difficult to use on mobile.  They tend to jump around while scrolling with touch input.

Is this on the roadmap for improvement?  We are working on a project and need to decide whether to roll our own TimePicker in the meantime.

(Note: this is an issue on both client/server side, but I am forced to choose one.)

Planned
Last Updated: 15 Dec 2021 13:59 by ADMIN
Created by: Robert
Comments: 1
Category: ContextMenu
Type: Bug Report
3
 
1 2