Completed
Last Updated: 23 Aug 2023 14:28 by ADMIN
Release 4.5.0 (08/30/2023) (R3 PI2)
Created by: Steve
Comments: 2
Category: UI for Blazor
Type: Feature Request
2
Do you plan to develop a DropDownButton component for Blazor with functionality found in the UI for WPF DropDownButton 
Duplicated
Last Updated: 25 Jun 2020 15:34 by ADMIN
Created by: khashayar
Comments: 0
Category: UI for Blazor
Type: Feature Request
2
I would like to use a Color Picker component.
Declined
Last Updated: 13 Sep 2023 10:57 by ADMIN

Hi,

I'm in the process of implementing a form in a Window component and would like the content to remain present in the DOM between hiding and showing of the window. I noticed that there's a line in the documentation where it states that PersistContent will allow the content of the window to remain in the DOM whenever the window is minimized. I recommend this be extended to the Visibility of the form, not just minimizing, as to create a more coherent approach.

I did come across this post here where it gives a description of how the above is achieved. This is a very inelegant approach as the consumer of the framework has to manually implement stuff which should be provided by the framework. The suggested approach also prevents the developer from opening multiple windows at once, which might be an issue in some cases.

Duplicated
Last Updated: 22 Jan 2021 20:42 by ADMIN
Created by: Henk
Comments: 1
Category: UI for Blazor
Type: Feature Request
2

Wè would like to have the Fluent UI style available for Blazor. We are using the Telerik UI controls in a large project werd the UI has to be very similar to the one of Microsoft D365 Customer Service.

Regards, Henk

Duplicated
Last Updated: 10 Aug 2021 10:13 by René
Created by: Philip
Comments: 5
Category: UI for Blazor
Type: Bug Report
2

Hello

 

I have just received some feedback from a client re. the DateInput -Blazor control whereby they are describing the default behaviour as "strange" - and on having a closer look I tend to agree / believe there to be bugs with this.

 

Please see video and below notes - let me know if there are any workarounds to these things.
I do see there is an existing bug report which may partially cover these issues (DatePicker loses focus when used as data editor in the Grid and the input date starts with 0 (telerik.com)) , however, it seems this is "unplanned" ?

 

QA Telerik DateInput:

  • Try entering in M =  1 then 1 SLOW = works ok

  • Try entering in M =  1 then 1 FAST = focus moves to the end of the date

  • Try entering 0 in the month or day  = Whole date disappears 
    (Data loss - for in-cell edit mode this is a big deal)

  • Try entering DD = 11 then its ok for 1st edit, but 2nd edit of the DD, 
    then the focus moves to the end????

  • Try entering M = 1, D = 8, Y=2021 without using the mouse 
    (its not possible as 01 would move focus to end of date).... 
    and if you choose to type 01 and its not fast enough, the whole date will disappear on entry of 0

 

Entering a date without using the mouse to move focus is quite important for big data-entry in grids where you are tabbing or clicking over from field to field in large quantities.

 

Cheers
Phil

Duplicated
Last Updated: 21 Dec 2020 11:48 by ADMIN
Created by: Raffaele
Comments: 1
Category: UI for Blazor
Type: Feature Request
2
When implement diagram component for blazor ui?
Declined
Last Updated: 24 Apr 2024 08:34 by ADMIN

Horizontal scrolling in the grid works when its width is set to a fixed value (px, rem, etc.). But the h scroll disappear when a percentage is assigned to the width of the grid.

This seems to be a known 'feature' to Telerik:

https://docs.telerik.com/blazor-ui/components/grid/columns/width?_gl=1*78gyue*_ga*MzUzNTU3NTM0LjE2ODU2MTc3Njk.*_ga_9JSNBCSF54*MTcxMjIyMTAxNS44My4xLjE3MTIyMjExMzQuOS4wLjA.*_gcl_au*MTA3OTA1NzUyOS4xNzEwNTE1Njgy&_ga=2.263164300.1038437897.1712221016-353557534.1685617769

A sensible behaviour is to have the horizontal scrolling enabled and at the same time being able to set the grid to percentage width.

Completed
Last Updated: 19 May 2020 16:15 by ADMIN
Release 2.14.0
Created by: Kostas
Comments: 1
Category: UI for Blazor
Type: Bug Report
2

Based on the example used in this page (https://docs.telerik.com/blazor-ui/components/grid/editing/incell)

i tried to use a component of my own composed by teleriks components in the editor template

 


@page "/fetchdata"
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.WebAssembly.Authentication
@inject IAccessTokenProvider AuthenticationService
@inject NavigationManager Navigation
@inject WeatherForecastDataSource WeatherForecastDataSource
@using Olympus.Artemis.Shared
@attribute [Authorize]

<h1>Weather forecast</h1>

<p>This component demonstrates fetching data from the server.</p>


<table class="table">
    <thead>
        <tr>
            <th>Date</th>
            <th>Temp. (C)</th>
            <th>Temp. (F)</th>
            <th>Summary</th>
        </tr>
    </thead>
    <tbody>
        <TelerikGrid Data="_data" Height="400px"  
                     Pageable="true" Sortable="true" Groupable="true" EditMode="@GridEditMode.Incell" Navigable="true"
                     FilterMode="Telerik.Blazor.GridFilterMode.FilterRow" @ref="_grid"
                     Resizable="true" Reorderable="true">
            <GridColumns>
                <GridColumn Field=@nameof(TestItem.WeatherForecastID) Title="Position" Width="200px">
                    <Template Context="item">
                        @{

                            var value = ((TestItem)item).WeatherForecastID;
                            var text = data.Where(x => x.ID == value).Select(x => x.Date).FirstOrDefault();

                        }
                        @text
                    </Template>
                    <EditorTemplate>
                        @{
                            currentItem = context as TestItem;
                            <Test2 OnChange="@onChange" DataSource="@this.WeatherForecastDataSource" Value="@currentItem.WeatherForecastID"></Test2>
 
                        }
                    </EditorTemplate>
                </GridColumn>
            </GridColumns>
        </TelerikGrid>


       
    </tbody>

</table>


@code {   
    protected async Task onChange(object o) {
        currentItem.WeatherForecastID =(Guid) o;
        Console.WriteLine("wrwerwe"+currentItem.WeatherForecastID);
        await CloseEditor(currentItem);
    }
    protected async override Task OnParametersSetAsync()
    {
        data =await WeatherForecastDataSource.GetDataAsync();

        await base.OnParametersSetAsync();
    }
    public List<WeatherForecast> data = new List<WeatherForecast>();
    public TestItem currentItem { get; set; }
    TelerikGrid<TestItem> _grid;
    DateTime selectedValue { get; set; } = DateTime.Now;
    private List<TestItem> _data = new List<TestItem>()
    {
            new TestItem { MyDate = DateTime.Today, DateName = "Σημερα" ,WeatherForecastID= new Guid("be4f3a98-5fd3-4972-bc49-1c442cdf87dd") ,ID=Guid.NewGuid()},
            new TestItem { MyDate =DateTime.Today.AddDays(1), DateName = "Αύριο",WeatherForecastID=new Guid("7fac0c25-653b-4606-afef-19f6e27fc57a"),ID=Guid.NewGuid() },
            new TestItem { MyDate =DateTime.Today.AddDays(2), DateName = "Μεθαύριο" ,WeatherForecastID= new Guid("48eb0a12-5971-479a-852d-6383f30e14cb"),ID=Guid.NewGuid()},
            new TestItem { MyDate =DateTime.Today.AddDays(3), DateName = "Αντιμεθαύριο" ,WeatherForecastID= new Guid("113bde91-b0b9-45e0-9d4b-5b280650e042"),ID=Guid.NewGuid()}
    };


    public class TestItem:Olympus.Artemis.Shared.InfoEntities.BaseInfo {
        public Guid WeatherForecastID { get; set; }
        public DateTime MyDate { get; set; }
        public string DateName { get; set; }
        public override bool Equals(object obj)
        {
            if (obj != null && obj is TestItem)
            {
                TestItem curr = obj as TestItem;
                return (ID == curr.ID) && (WeatherForecastID == curr.WeatherForecastID) && (MyDate == curr.MyDate) && (DateName == curr.DateName);
            }
            return false;
        }
    }
    public async Task CloseEditor(TestItem currentItem)
    {
        var state = _grid?.GetState();

        if (currentItem.ID == null && state.InsertedItem != null)
        {
            // insert operation - the item is new
            await CreateHandler(new GridCommandEventArgs()
            {
                Item = state.InsertedItem
            });
        }
        else
        if (currentItem.ID != null && state.EditItem != null)
        {
            Console.WriteLine($"field c {state.EditField}  {typeof(TestItem).GetProperty(state.EditField).GetValue(currentItem)}");
            Console.WriteLine($"field e {state.EditField}  {typeof(TestItem).GetProperty(state.EditField).GetValue(state.EditItem)}");

            // edit operation on an existing item
            await UpdateHandler(new GridCommandEventArgs()
            {
                Item = state.EditItem,
                Field = state.EditField
            });
        }

        state.InsertedItem = state.OriginalEditItem = state.EditItem = default;
        StateHasChanged();
        await Task.Delay(200); // let the grid re-render and close the cell if keyboard navigation is enabled

        await _grid?.SetState(state);
    }
    async Task UpdateHandler(GridCommandEventArgs args)
    {

        string fieldName = args.Field;
        object newVal = args.Value; // you can cast this, if necessary, according to your model
        Console.WriteLine(fieldName);

        TestItem item = (TestItem)args.Item; // you can also use the entire model
        Console.WriteLine(item.ID);

        // perform actual data source operation here through your service

        // if the grid Data is not tied to the service, you may need to update the local view data too
        var index = _data.FindIndex(i => i.ID == item.ID);
        if (index != -1)
        {
            if (!_data[index].Equals(item))
            {
                _data[index] = item;
                Console.WriteLine("Update event is fired for " + args.Field + typeof(TestItem).GetProperty(args.Field).GetValue(item));
                // this copies the entire item, consider altering only the needed field
            }
        }

    }
    async Task CreateHandler(GridCommandEventArgs args)
    {
        TestItem item = (TestItem)args.Item;

        item.ID = Guid.NewGuid();
        _data.Insert(0, item);

        Console.WriteLine("create");
        // perform actual data source operation here through your service
    }


}

 

The test2 component created by me is this one It only includes a telerikdropdown

@using Olympus.Artemis.Shared
<TelerikComboBox Data="@Items" Value="@Value" ValueField="ID" OnChange="@OnChange" TextField="Date">

</TelerikComboBox>
@code {


    [Parameter]
    public EventCallback<Object> OnChange { get; set; }

 

    [Parameter]
    public Guid Value { get; set; }

    [Parameter]

    public DataSource<WeatherForecast> DataSource { get; set; }

    private IEnumerable<WeatherForecast> Items { get; set; } = new List<WeatherForecast>();
    protected async override Task OnInitializedAsync()
    {
        Items = await DataSource.GetDataAsync();

        await base.OnInitializedAsync();
    }


}

But when i try to select something from the dropdown list the grid cel does not close gracefully 

I get this error (the problem is when it executed the line   await _grid?.SetState(state);)

 

blazor.webassembly.js:1 crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1       Unhandled exception rendering component: Unknown edit type: 0
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1       Error: Unknown edit type: 0
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at e.applyEdits (https://localhost:44310/_framework/blazor.webassembly.js:1:15000)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at e.updateComponent (https://localhost:44310/_framework/blazor.webassembly.js:1:12872)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at Object.t.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:1704)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at Object.window.Blazor._internal.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:34679)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at _mono_wasm_invoke_js_unmarshalled (https://localhost:44310/_framework/wasm/dotnet.3.2.0-preview5.20216.1.js:1:166495)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at wasm_invoke_iiiiii (wasm-function[3166]:0x9d336)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at icall_trampoline_dispatch (wasm-function[5782]:0x1006fa)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at mono_wasm_interp_to_native_trampoline (wasm-function[4612]:0xcc80e)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at ves_pinvoke_method (wasm-function[3215]:0x9ed39)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at interp_exec_method (wasm-function[1126]:0x25a67)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 Microsoft.JSInterop.JSException: Unknown edit type: 0
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 Error: Unknown edit type: 0
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at e.applyEdits (https://localhost:44310/_framework/blazor.webassembly.js:1:15000)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at e.updateComponent (https://localhost:44310/_framework/blazor.webassembly.js:1:12872)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at Object.t.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:1704)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at Object.window.Blazor._internal.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:34679)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at _mono_wasm_invoke_js_unmarshalled (https://localhost:44310/_framework/wasm/dotnet.3.2.0-preview5.20216.1.js:1:166495)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at wasm_invoke_iiiiii (wasm-function[3166]:0x9d336)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at icall_trampoline_dispatch (wasm-function[5782]:0x1006fa)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at mono_wasm_interp_to_native_trampoline (wasm-function[4612]:0xcc80e)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at ves_pinvoke_method (wasm-function[3215]:0x9ed39)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at interp_exec_method (wasm-function[1126]:0x25a67)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled[T0,T1,T2,TResult] (System.String identifier, T0 arg0, T1 arg1, T2 arg2) <0x3038030 + 0x00046> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled[T0,T1,TResult] (System.String identifier, T0 arg0, T1 arg1) <0x3037f50 + 0x00014> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer.UpdateDisplayAsync (Microsoft.AspNetCore.Components.RenderTree.RenderBatch& batch) <0x3037e58 + 0x0001e> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue () <0x2de1a68 + 0x000f2> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1       Unhandled exception rendering component: Cannot read property 'parentNode' of undefined
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1       TypeError: Cannot read property 'parentNode' of undefined
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at Object.e [as removeLogicalChild] (https://localhost:44310/_framework/blazor.webassembly.js:1:6927)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at e.applyEdits (https://localhost:44310/_framework/blazor.webassembly.js:1:13641)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at e.updateComponent (https://localhost:44310/_framework/blazor.webassembly.js:1:12872)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at Object.t.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:1704)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at Object.window.Blazor._internal.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:34679)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at _mono_wasm_invoke_js_unmarshalled (https://localhost:44310/_framework/wasm/dotnet.3.2.0-preview5.20216.1.js:1:166495)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at wasm_invoke_iiiiii (wasm-function[3166]:0x9d336)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at icall_trampoline_dispatch (wasm-function[5782]:0x1006fa)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at mono_wasm_interp_to_native_trampoline (wasm-function[4612]:0xcc80e)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at ves_pinvoke_method (wasm-function[3215]:0x9ed39)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 Microsoft.JSInterop.JSException: Cannot read property 'parentNode' of undefined
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 TypeError: Cannot read property 'parentNode' of undefined
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at Object.e [as removeLogicalChild] (https://localhost:44310/_framework/blazor.webassembly.js:1:6927)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at e.applyEdits (https://localhost:44310/_framework/blazor.webassembly.js:1:13641)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at e.updateComponent (https://localhost:44310/_framework/blazor.webassembly.js:1:12872)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at Object.t.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:1704)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at Object.window.Blazor._internal.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:34679)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at _mono_wasm_invoke_js_unmarshalled (https://localhost:44310/_framework/wasm/dotnet.3.2.0-preview5.20216.1.js:1:166495)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at wasm_invoke_iiiiii (wasm-function[3166]:0x9d336)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at icall_trampoline_dispatch (wasm-function[5782]:0x1006fa)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at mono_wasm_interp_to_native_trampoline (wasm-function[4612]:0xcc80e)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at ves_pinvoke_method (wasm-function[3215]:0x9ed39)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled[T0,T1,T2,TResult] (System.String identifier, T0 arg0, T1 arg1, T2 arg2) <0x3038030 + 0x00046> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled[T0,T1,TResult] (System.String identifier, T0 arg0, T1 arg1) <0x3037f50 + 0x00014> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer.UpdateDisplayAsync (Microsoft.AspNetCore.Components.RenderTree.RenderBatch& batch) <0x3037e58 + 0x0001e> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue () <0x2de1a68 + 0x000f2> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1       Unhandled exception rendering component: No element is currently associated with component 96
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1       Error: No element is currently associated with component 96
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at e.updateComponent (https://localhost:44310/_framework/blazor.webassembly.js:1:12336)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at Object.t.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:1704)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at Object.window.Blazor._internal.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:34679)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at _mono_wasm_invoke_js_unmarshalled (https://localhost:44310/_framework/wasm/dotnet.3.2.0-preview5.20216.1.js:1:166495)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at wasm_invoke_iiiiii (wasm-function[3166]:0x9d336)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at icall_trampoline_dispatch (wasm-function[5782]:0x1006fa)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at mono_wasm_interp_to_native_trampoline (wasm-function[4612]:0xcc80e)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at ves_pinvoke_method (wasm-function[3215]:0x9ed39)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at interp_exec_method (wasm-function[1126]:0x25a67)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1           at interp_runtime_invoke (wasm-function[5660]:0xf937a)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 Microsoft.JSInterop.JSException: No element is currently associated with component 96
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 Error: No element is currently associated with component 96
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at e.updateComponent (https://localhost:44310/_framework/blazor.webassembly.js:1:12336)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at Object.t.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:1704)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at Object.window.Blazor._internal.renderBatch (https://localhost:44310/_framework/blazor.webassembly.js:1:34679)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at _mono_wasm_invoke_js_unmarshalled (https://localhost:44310/_framework/wasm/dotnet.3.2.0-preview5.20216.1.js:1:166495)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at wasm_invoke_iiiiii (wasm-function[3166]:0x9d336)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at icall_trampoline_dispatch (wasm-function[5782]:0x1006fa)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at mono_wasm_interp_to_native_trampoline (wasm-function[4612]:0xcc80e)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at ves_pinvoke_method (wasm-function[3215]:0x9ed39)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at interp_exec_method (wasm-function[1126]:0x25a67)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1     at interp_runtime_invoke (wasm-function[5660]:0xf937a)
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled[T0,T1,T2,TResult] (System.String identifier, T0 arg0, T1 arg1, T2 arg2) <0x3038030 + 0x00046> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled[T0,T1,TResult] (System.String identifier, T0 arg0, T1 arg1) <0x3037f50 + 0x00014> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer.UpdateDisplayAsync (Microsoft.AspNetCore.Components.RenderTree.RenderBatch& batch) <0x3037e58 + 0x0001e> in <filename unknown>:0 
p.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1   at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue () <0x2de1a68 + 0x000f2> in <filename unknown>:0 

 

The test control is a simplified version of a more complex control i was trying to create (mutlicolumn combobox)

If I instead use the telerikdropdown in editortemplate everything works ok

 

 
Duplicated
Last Updated: 04 Aug 2023 07:42 by ADMIN

Per API documentation, the Decimals property defaults to what is set in the user's region (culture). This is a flawed design.

Why would one think that ALL properties of type double or float in grid models should be truncated to 2 decimal places (when my region is set to US and that is the default)?

This seriously limits property values. Not everything is a dollar and cent value! The region setting I believe is for how to format general currency values perhaps (I am not exactly sure what it is for, because there is a different tab for 'Currency' with a 'No. of digits after decimal' setting as well as the tab for 'Numbers' having the same thing. But this does not mean that Windows always formats numbers that way.

Suppose for example I have a property in my model named "Weight" (expressed in terms of pounds). The value 150.12345 (pounds) is perfectly valid. It should not be truncated to 150.12. Or another, "Length" (expressed in terms of Feet): 17.0625 (that's 17 feet, 1 inch) - should not be morphed into 17.06.

To work around this, developers currently either have to override a <GridColumn>'s <EditorTemplate> and place a <TelerikNumericTextBox> element bound to the same property that the <GridColumn> is, and explictly set the Decimals property themselves.

Or what I have found is a better workaround, although not desirable to have to do this at all, is to put this kind of code snippet in the Program.cs file, right after the line var app = builder.Build();

app.UseRequestLocalization(action =>
{
   var currentCulture = CultureInfo.CurrentCulture.Clone() as CultureInfo;
   currentCulture!.NumberFormat.NumberDecimalDigits = 10; // for example, to allow this many decimal places in everything numeric
   var cultures = new List<CultureInfo>() { currentCulture };
   action.SupportedCultures = cultures;
});

Please remove the default value for the Decimals property being tied to the culture. It should just allow as many decimal places as a normal float or double would allow for its precision. Perhaps just allow a developer to set it and honor that, but if not set, basically let it be unlimited, just like the number of digits to the left of the decimal point.

Duplicated
Last Updated: 29 Oct 2020 08:24 by ADMIN
Created by: Philip
Comments: 1
Category: UI for Blazor
Type: Feature Request
2

As we are porting many of our applications from Telerik MVC to Blazor, our clients are complaining about particular features no longer being available.

 

One of which is the multiline edit for incell edit that is available in Telerik-MVC.

 

This feature is nice as it allows the grid to have a very "excel - like" feel to it, with a small triangle in the corner to indicate the cell/view-model has been edited.

 

As is, the user is forced to edit the data line-by-line, and save per line.

In real client work, data is not necessarily modified in this linear/per-row fashion.

 

Take for example, a client has a list of delivery dates which need to be updated down 1 column, current functionality is painful, as you need to edit 1 date, click save, then move onto the next row instead of just moving down the rows and clicking save after you have finished your edits (like you can with Telerik MVC grid).

 

My rationale for this feature add: The "big data" age is upon us - and blazor is very well suited for these types of applications being strongly typed/c# etc; would be great to see Telerik lead in rich data input components for data heavy applications, and the grid is the most core UI component hence should be the most feature rich and performant.

 

Unplanned
Last Updated: 05 Nov 2020 13:41 by ADMIN
Created by: Aleksandr
Comments: 0
Category: UI for Blazor
Type: Feature Request
2
Creating custom filter descriptors requires setting the MemberType to match the type of the field they will work with. This should be something we can do through a constructor too, not just by setting the property after creating the instance.
Duplicated
Last Updated: 21 Jul 2022 09:00 by ADMIN
Created by: Lance
Comments: 8
Category: UI for Blazor
Type: Bug Report
2

<TelerikDatePicker Id="startDate" @bind-Value="@StartDate" Width="160px" Format="dd-MMM-yy"></TelerikDatePicker>

DateTime StartDate=DateTime.Now

 

When our users type to click on the year and type another one they lose one of the digits - so if they try typing 19 or 18 for instance then it sets the date to year 01

 

 

Completed
Last Updated: 10 Jun 2022 09:29 by ADMIN
Created by: Peter
Comments: 2
Category: UI for Blazor
Type: Feature Request
1

Hi,

  I had to figure this out myself for the ComboBoxSettings because there is no documentation for this. 

  The MinWidth works from the Combobox width or greater extending the size of the popup and

   MaxWidth only creates a popup width of the Combobox only. 

Please document this feature and how to use it.  And, is this intentional because it wasn't intuitive for me to figure out.

I created a REPL for you to test this out for yourself. 

https://blazorrepl.telerik.com/GcYHOXGQ46qRkI8K54

Declined
Last Updated: 20 Mar 2022 09:29 by ADMIN
Created by: Joshua
Comments: 1
Category: UI for Blazor
Type: Feature Request
1

Hello,

I would love to see an auto sizing for a TileLayoutItem. Specifically, in my case, the RowSpan. I feel like this would make a great addition as a parameter in the future as (also AutoSizeColumn would be nice)

<TileLayoutItem AutoSizeRow="true"></TileLayoutItem>

I am working on an application that has dynamic data displayed within the TileLayoutItem. In my current implementation, I'm going through a process of attempting to calculate for resizing the RowSpan. The calculations are based on an inner body div that holds an id, finds the parent k-tilelayout-item and then the the k-tilelayout itself. I can't positively say my math is perfect but it (mostly) gets the job done. Keeping in mind that I have created other altered other areas of the TileLayout as well, specifically setting the TelerikTileLayout grid to autofit.

For an idea of what I am currently doing as a means of possibly finding a (better) way to implement this in the future, this is the long ugly javascript code I have that is used to gather a minimum size and return it to blazor via JsInterop.

function (tileId, minSpanSize = 4) {
        try {
            var el = document.getElementById(tileId);
            var tileLayout = $(el).closest(".k-tilelayout")[0];
            var parentTile = $(el).closest(".k-tilelayout-item")[0];

            var headerHeight = $(el).parent().siblings(".k-tilelayout-item-header")[0].offsetHeight;

            var parentSpan = parseInt(parentTile.style.gridRowEnd.split("span ")[1]);
            var gap = parseInt(tileLayout.style.gap.replace("px", ""));
            var rowHeight = parseInt(tileLayout.style.gridAutoRows.split(",")[1].split("px")[0]);

            // cannot recall where I got 1.25 from
            var minSize = Math.ceil((headerHeight + el.offsetHeight) / ((gap / 1.25) + rowHeight));

            // if parent is less than minsize
            if (parentSpan < minSize) {
                parentTile.style.gridRowEnd = "span " + minSize;
                return { id: tileId, minSize: minSize };

                // Otherwise, if min size is greater than or equal to minSpanSie
            } else if (minSize >= minSpanSize) {
                parentTile.style.gridRowEnd = "span " + minSize;
                return { id: tileId, minSize: minSize };
            }

        } catch { }
        return { id: tileId, minSize: -1 };
    
Completed
Last Updated: 04 Aug 2023 13:19 by ADMIN
Release 4.5.0 (08/30/2023) (R3 PI2)
Created by: Peili
Comments: 1
Category: UI for Blazor
Type: Bug Report
1

My grid bind to ExpandoObjects, and I would like to implement a Group Header.

So I referenced these two documents
https://docs.telerik.com/blazor-ui/knowledge-base/grid-binding-to-expando-object

https://docs.telerik.com/blazor-ui/components/grid/columns/multi-column-headers

 

From the first document, it make sense to me that we need to set FieldType for each column that binds to ExpandoObject, but it seems this restriction also applies to the group header column, which does not make sense.

Foe example:

<TelerikGrid Data="@GridData"
             Pageable="true"
             Sortable="true"
             FilterMode="@GridFilterMode.FilterRow">
    <GridColumns>
        <GridColumn Title="Test Group Header">
            <Columns>
                <GridColumn Field="PropertyInt" Title="Int Column" FieldType="@typeof(int)" />
                <GridColumn Field="PropertyString" Title="String Column" FieldType="@typeof(string)" />
                <GridColumn Field="PropertyDate" Title="DateTime Column" FieldType="@typeof(DateTime)" />
            </Columns>
        </GridColumn>
    </GridColumns>
</TelerikGrid>

 

I get error:

 

I need to set FieldType on the "Test Group Header" column to an arbitrary value to get rid of this error.

 

Declined
Last Updated: 25 Sep 2024 10:15 by ADMIN
Created by: Saurabh
Comments: 3
Category: UI for Blazor
Type: Bug Report
1

Filter option switch back to default option (Contains) after entering value in the textbox. 

 

Example - 

- screenshot-1 - Select from filter option - Startswith ; Then, enter value in text box.

- screenshot -2 - After user enter first character , atomically filter option switch back to Contains (from startswith).  

 

 

Duplicated
Last Updated: 26 Jul 2023 13:14 by ADMIN
I have been using Telerik Data Grid, When the total count of record in the grid is equals to the pagination options(5, 10, 20), the blank value is selected in the page size dropdown. I have total data record of 10, for the first time the page size is showing, when I select the 20 and again select 10 it disappears.

Repl demo link: https://blazorrepl.telerik.com/cROhmgvP088tMZDF58 

Unplanned
Last Updated: 26 Apr 2023 13:23 by ADMIN

If the Height parameter is not specified, in the Gantt tree list, every line after the number of lines of the initial display are not shown.

 

The steps are easy to reproduce:

Start from the official Gantt Demo in the REPL and simply remove the Height parameter from TelerikGantt.

If you do this, you will see that opening the children of the first and only element in the tree list will show everything correctly in the Timeline part (if no mistake) but doesn't show the children lines in the TreeList part.

 

Therefore, I believe, the Height parameter should become mandatory until we can allow the height of the Gantt to be dynamic without rendering issues.
Completed
Last Updated: 02 Jul 2024 13:45 by Al
Created by: Al
Comments: 2
Category: UI for Blazor
Type: Feature Request
1
Request the TelerikNotification supports MarkupString or HTML or at least Multiline text
Declined
Last Updated: 02 May 2023 09:08 by ADMIN
Created by: Chris
Comments: 1
Category: UI for Blazor
Type: Bug Report
1

I can't find a way to reliably set focus after a tab change.
In the sample below it first sets focus based on the OnAfterRenderAsync code, but switching to tab 2 and then going back I can't get it to set focus again.

I suspect its because there is no render type of event on a specific tab that I can hook into?
I have tried javascript and blazor and can't seem to figure a way around it.


@page "/test"

<TelerikTabStrip ActiveTabIndex="@TabActiveIndex" Height="87vh" Class="ct-tabstrip" ActiveTabIndexChanged="@TabIndexChanged">
<TabStripTab Title="Orders Search">
<input type="text" @ref=orderSearchTextBox id="test"/>
<br />
<input type="text" />
<br />
<input type="text" />
</TabStripTab>
<TabStripTab Title="Orders Updated Today">
<text>Tab 2</text>
</TabStripTab>
</TelerikTabStrip>

@code {
private ElementReference orderSearchTextBox;
private int TabActiveIndex;


protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await orderSearchTextBox.FocusAsync();

}
}
public async Task TabIndexChanged(int NewIndex)
{
TabActiveIndex = NewIndex;
if (NewIndex == 0)
{
await orderSearchTextBox.FocusAsync();
}
}
}