Declined
Last Updated: 19 Oct 2021 21:28 by ADMIN

Is it possible to show (modal confirmation) handle filtering before apply? Show pop-up modal, and when Confirm, start filtering, othewise cancel!!

Completed
Last Updated: 24 Oct 2021 19:53 by ADMIN

 

The demos and examples for storing and retrieving GRID state uses the JavaScript localStorage.setItem and localStorage.getItem that work great.  As part of .NET 5 there's a Microsoft equivalent for accessing Local Storage using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage.  I've found the behavior of these demos and examples will not work by simply replacing the JavaScript with .NET equivalents.  My experience is getting Circuit Handler exceptions that make these example not work.  

Although not a requirement since there's a JavaScript solution for local storage, I would like to recommend that since you partner closely with .NET team at Microsoft.  That your GRID development team test and provide examples with the Microsoft .NET 5 out-of-the-box local storage solution and resolve any incompatibilities for developers not wanting to use 1st party local storage solutions embedded within Microsoft Blazor.

 

----
ADMIN EDIT

I made a sample test and things seemed to work for me, so I made a public example, you can find it in this pull request until it gets merged. I'm also attaching it to this post, but for anyone seeing this after a time - the public repository linked above is a better place to look for this in case more updates and information have been added since the time of writing this.

---

Declined
Last Updated: 19 Jul 2022 08:02 by ADMIN
Created by: Nicholas
Comments: 1
Category: UI for Blazor
Type: Feature Request
0

Current implementation of Theme Color is annoying.

  1. Setting the ThemeColor to be a static class instead of an ENum is bizarre.  It makes it really annoying to pass a typed themeColor into an input parameter.  I can understand the want to be more flexible and the inputs to your controls being a string
  2. You are re-using the ThemeColor in several different places where it is simply repeated. This makes things really annoying.  

 

I recommend:

  1. Keeping the inputs to your controls for theme colors to be a string, so you can maintain the flexiblity (reason I assume you changed this in the first place)
  2. Use a single enum and in the documentation / examples say by default use "nameof(ThemeColor.Primary) for default themes"  You can add your own custom theme by .... and pass in a string.

 

 

 

Completed
Last Updated: 13 Jul 2022 12:47 by ADMIN
Created by: Marc Simkin
Comments: 1
Category: UI for Blazor
Type: Feature Request
0

Pretty simple. With each release the product examples in the Github repo should be updated.

For example, I am looking at the drawer -> sidenav example. Before I can even run the example, I now need to go through all the code to make the updates from 2.14.1 to 3.4.0.  Some of the changes that I have to make are:

  • TelerikButton no longer supports the Primary attribute
  • Drawer content needs now needs to be in a <DrawerContent> element not <Content>

I should not have to make these updates to look at an example, especially when it is referenced from a forum posting.

I should just be able to compile and run the example.

Duplicated
Last Updated: 01 Nov 2021 08:11 by ADMIN
Created by: Andrew
Comments: 1
Category: UI for Blazor
Type: Bug Report
0

Rendering the TelerikCalendar control produces HTML with ARIA roles like so:

  • tbody - 'rowgroup'
    • tr - 'presentation' <--- this should be 'row'
      • td - 'gridcell'

 

Documentation: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Gridcell_role

This seems small, but looks bad on accessibility reports, especially when a calendar has 42 'gridcells', The impact is significant when seen in summary.

Alternatively, or in addition, can ARIA roles be turned of for specific controls? In this case including role attributes in the markup is not actually necessary as the roles can be implied by the HTML tags. Including roles that are incorrect is more work for more confusion.

Completed
Last Updated: 06 Jul 2022 07:45 by ADMIN
Created by: Jeremy
Comments: 2
Category: UI for Blazor
Type: Feature Request
0
Provide an easy way to highlight or style the current selected tab. e.g. an ActiveTabClass property on the tab strip.
Declined
Last Updated: 29 Mar 2022 07:18 by ADMIN
Created by: Dan
Comments: 2
Category: UI for Blazor
Type: Feature Request
0

Currently when setting up a new Blazor app I need to go to the docs each time or look at a reference project to remember the resource paths for the CSS files. Additionally once you have a project if you are relying on a CDN but later update the NuGet package your app will be referencing the wrong css bundle unless you remembered to also update your layout.

Instead of having this as a magic string that is required in each project, it would be great if a new helper class could be introduced. As an example it might look something like:

public class TelerikResources
{
    public class Cdn
    {
        public class Default
        {
            public string Path = "";
        }

        public class Bootstrap
        {
            public string Path = "";
        }

        public class Material
        {
            public string Path = "";
        }
    }

    public class Local
    {
        public class Default
        {
            public string Path = "";
        }

        public class Bootstrap
        {
            public string Path = "";
        }

        public class Material
        {
            public string Path = "";
        }
    }
}

 

This would have the benefit that in the layout you might simply have:

<link href="@TelerikResources.Cdn.Bootstrap.Path" rel="stylesheet" />


This has a few benefits. It's easier to remember, easier to discover the other available prebuilt styles, and removes issues with pointing at the wrong path after updating library versions (assuming that you're using the Cdn rather than local resource).

Declined
Last Updated: 17 Nov 2021 13:11 by ADMIN
We have two questions about DateTimePicker logic related to Min and Max values:


1) Validation of handwritten value after loosing focus.

When there are restrictions for min / max values of component, user can't picks invalid date with dropdown and validation works perfectly. However when user enters value as a string, telerik component lets him do that without any alerts. After loosing focus component sets date that match to chosen interval. The problem arrives when user clicks "Save button" after handwritten invalid date and Telerik corrects it by itself with valid but not always correct date from user side. Is it normal situation or there might be a solution to prevent possibility of entering of invalid date before loosing control?


2) Result date after handwritten input that out of accessible range.

After input of out of range date Telerik compute valid date and set it in component. May be situation when user entered correct value for the first time and then tried to change it to invalid, then he would lose his first entered date. Maybe should save last valid date for the next attempts of inputs or leave component logic in current condition?

There is example of situation:

1. TelerikDateTimePicker.Max = 11/1/2021 6:12 PM;

2. User picks date 11/1/2021 6:07 PM;

3. User decides to set 11/1/2021 6:35 PM and writes it in text field;

4. Telerik corrects its date to 11/1/2021 6:03 PM because it's valid, but previous user date was lost.
Duplicated
Last Updated: 11 Nov 2021 21:28 by ADMIN

 

Can we have the Image Gallery control like the ASPX AJAX, please? The slide show feature with various transitions is very useful. Thanks.

https://www.telerik.com/products/aspnet-ajax/image-gallery.aspx

 

Duplicated
Last Updated: 30 Dec 2021 14:12 by ADMIN

I have a column grouped by groupname of producttype having values likes diesel,electric,gas,petrol but i want specific order in groups to appear like diesel,petrol,electric,gas 

 

Using  

 

Protected void onstateinithandler(gridstateeventargs <prdouctmodel> args)

{

gridstate <productmodel> statetobe = new gridstate <productmodel>()

{

GroupDescriptors = new list <groupdescriptor>()

{

new GroupDescriptor()

{ Member= "producttype",

Membertype =typeof (string)

}

},

Collapsedgroups =enumerable.range (0,4).tolist ()

};

args.gridstate = statetobe

}


Declined
Last Updated: 05 Jan 2022 13:16 by ADMIN
Created by: Maurice
Comments: 1
Category: UI for Blazor
Type: Bug Report
0

Hi,

I have found some evidence of a bug which I believe add to the portrait of this issue which has already been reported but declined. Could you please have a look at my recent comments and report it to follow on it (so it remains active)?

 

https://feedback.telerik.com/blazor/1532895-initcheckbox-was-undefined

 

Regards.

Maurice.

Declined
Last Updated: 13 Jun 2022 10:46 by ADMIN
Created by: Daniel
Comments: 1
Category: UI for Blazor
Type: Bug Report
0

Hi I have noticed that if the dropdown for an enum cannot wordwrap the item then the styling is broken, see the following the screenshot:

As you can see IN_PROGRESS is so long that it exceeds the column width and creates empty space above.

To me it appears as though an attempt to try to wordwrap the IN_PROGRESS but IN_PROGRESS has no applicable breaks in it.

 

Thanks,

Daniel

Completed
Last Updated: 01 Jan 2022 14:03 by ADMIN

Incremental Search A grid that can be searched incrementally as one types in the search box.

On-demand Sort It should have the ability to do a toggle between ascending and descending sort order when the user taps on a column header.

Pagination It should provide customizable pagination so only one page worth of data is fetched at any given time.

Did I describe the jQuery Datatable functionality? It is because it is so good and having the equivalent of its server-side implementation equivalent in Blazor will be awesome.

Implementation Thoughts The control sends a predefined model to an event bound function as parameter. The model has the information like requested page, column-sort request, letters the user typed into the search box etc. The function fetches data based on the model and the grid updates dynamically.

Duplicated
Last Updated: 25 May 2022 08:25 by ADMIN
Created by: Wim
Comments: 1
Category: UI for Blazor
Type: Bug Report
0

We have a grid with the standard numeric filter menu.

When we copy a numeric value from Excel or from somewhere else and paste it into the field it is not copied.

This also happens with the demo on https://demos.telerik.com/blazor-ui/grid/filter-menu

It does not work since the 3.3.0 version.

Looks like the filter row has the same problem.

Completed
Last Updated: 07 Feb 2022 16:10 by ADMIN

Hello,

first of all, thank you for relelasing Dialog, it is what we are "simulating" by modal Window on any kind of heavy data editing app,again and again and again :) .

The problem is,
- when you put DropDownList in Dialog, using OnRead async task event, the UI is still "empty". => Iam fiddled with reassigning datasource, changing order of assigning source, nothing helped.
- same dropdownlist scenario inside window, working/displayed as expected.

Steps to reproduce:
1) click on then button to show window by -> async task
2) event OnRead of the dropdownlist is correctly called, data to the IEnumerable<model> is loaded
3) window appear, but DropDownList is empty
4) when you filter by typeing inside DropDownList, OnRead is called and model populated, but GUI is still empty

What doesnt worked:
- statechaned, reassign datasource, clear datasource, task delay

What partially worked:
- OnRead=> async Task changed to just: OnRead=> Task

Thanks for info what should be made done else.

Stripped sample:
<TelerikButton @onclick="@(() => ParamEd(4444, null))">open window or dialog</TelerikButton>
<TelerikWindow Modal="true" @bind-Visible="@ShowEditWindow" Draggable="true">
<WindowTitle>
<strong>@ShowEditWindowCaption</strong>
</WindowTitle>
<WindowContent>

<TelerikDropDownList @bind-Value="@CurrentEdit.ValTxt"
ScrollMode="@DropDownScrollMode.Virtual"
Data="@CurrentEdit.ComboSource"
OnRead="@ReadComboData"
ItemHeight="30"
TotalCount="@Paging.CNT"
PageSize="14"
PopupHeight="400px"
TextField="Nazev1"
ValueField="KeyVal"
Filterable="true"
FilterOperator="StringFilterOperator.Contains">
</TelerikDropDownList>
....
vs
<TelerikDialog @bind -Visible="@ShowEditWindow" Title="@ShowEditWindowCaption" CloseOnOverlayClick="false">
<DialogContent>
<TelerikDropDownList @bind-Value="@CurrentEdit.ValTxt"
ScrollMode="@DropDownScrollMode.Virtual"
Data="@CurrentEdit.ComboSource"
OnRead="@ReadComboData"
ItemHeight="30"
TotalCount="@Paging.CNT"
PageSize="14"
PopupHeight="400px"
TextField="Nazev1"
ValueField="KeyVal"
Filterable="true"
FilterOperator="StringFilterOperator.Contains">
</TelerikDropDownList>
....
@code{

[CascadingParameter]
public NotificationBase Notification { get; set; }
[CascadingParameter]
public DialogFactory Dialogs { get; set; }


//clicked on the button to show window/dialog:
async Task ParamEd(int xtyp, object it)
{
await Task.Delay(500);//await load captions... and THEN open window:
ShowEditWindowCaption = "window title";
ShowEditWindow = true;
}

async Task ReadComboData(DropDownListReadEventArgs e)
{
try
{
var r = await readDBDATA...
//CurrentEdit.ComboSource = new List<EdBase>();
//CurrentEdit.ComboSource = null;
//CurrentEdit.ComboSource = new IEnumerable<EdBase>(r);
//CurrentEdit.ComboSource = await ReadDBDATA
CurrentEdit.ComboSource = r;
Paging.CNT = p.Get<int>("CNT");

/*
//!! HOTFIX FROM ANOTHER BUG(show selected data) - ReAssign data(but id doesnt impact result):
string v = CurrentEdit.ValTxt;
int? i= CurrentEdit.ValInt;
CurrentEdit.ValTxt = string.Empty;
CurrentEdit.ValInt = null;
StateHasChanged();
//await InvokeAsync(() => StateHasChanged());
CurrentEdit.ValTxt = v;
CurrentEdit.ValInt = i;

//CurrentEdit.ValTxt = CurrentEdit.ValTxt;
//StateHasChanged();
*/
}
catch (Exception ex)
{
Notification.ShowSQLErr(ex.Message);
}
}

//PARTIALLY WORKING, but not filtering:
Task ReadComboData(DropDownListReadEventArgs e)
{
try
{
var r = readDBDATA...
CurrentEdit.ComboSource = r;
Paging.CNT = p.Get<int>("CNT");
}
catch (Exception ex)
{
Notification.ShowSQLErr(ex.Message);
}
}
}

Declined
Last Updated: 12 Mar 2022 19:41 by ADMIN
Created by: Tim
Comments: 2
Category: UI for Blazor
Type: Bug Report
0

I just updated to Telerik.UI.for.Blazor 2.30.0 and the grid search boxes look a little screwy.  Not a huge deal but thought I would report it.

Duplicated
Last Updated: 15 Sep 2022 16:21 by ADMIN
Created by: David
Comments: 1
Category: UI for Blazor
Type: Feature Request
0

My team is currently using animation containers as menu popups in our web app, which will need to work on both desktop and mobile devices in a web browser. For the mobile layout, I would like to be able to open animation containers via swipe gestures. I understand that animation containers are not strictly menus, however, I would love to see swipe action support in Telerik UI for Blazor, and then be able to bind that action to an animation container.

The only framework I have found by way of example is https://onsen.io/. Please observe how it is possible to open a panel by swiping close to the edge of the sample device on their homepage.

This feature would make it much easier to build dynamic web apps that perform well on desktop and feel native on mobile devices as well.

Thank you,

David

Declined
Last Updated: 25 Sep 2024 10:26 by ADMIN
Created by: Bernard
Comments: 2
Category: UI for Blazor
Type: Bug Report
0

Hello,

I'm using a numeric textbox and when I test my page for accessibility, Allyable reports the following:

Category: Ensure button or link have discernible text that is not repeated as image description

Selector: .k-form-field-wrap > .k-numerictextbox.k-widget > .k-numeric-wrap > .k-select > [role="button"].k-link-decrease

Severity: Critical

Here is my source code:

<TelerikNumericTextBox @bind-Value="@cardCleaner.Quantity" Id="cleanerQty" Width="100px" />

Is this really an accessibility issue?

Thanks,

Bernard

 

Declined
Last Updated: 10 Jan 2022 07:37 by ADMIN
Created by: improwise
Comments: 7
Category: UI for Blazor
Type: Bug Report
0

It seems that the TabBar convers some parts of the popup form from the Grid. See image. If we move the grid outside of the TabBar, the problem goes away. 

Declined
Last Updated: 09 May 2022 10:04 by ADMIN

I have a telerikdropdownlist in the EditorTemplate of a Grid. If a user uses the keyboard to speed the navigation of the dropdown (for example: they type a T to immediately scroll to the T section), then clicks on a selection further down in the list, the selected item becomes the item navigated to via the Keyboard, not the item that is actually clicked on. Clicking on an item (without using the keyboard navigation first) works as expected. I was able to replicate this behavior in REPL using the following code:


<br />
<br />
<TelerikDropDownList
    Data = "@People"
    @bind-Value="@SelectedUser"
    TextField="LastFirst"
    ValueField="Id"
    Width="400px"
/>
<br />
<br />
<TelerikGrid
    Data="@Assets"
    EditMode="GridEditMode.Inline"
    Width="800px"
    OnUpdate="@Update"
    >
   <GridColumns>
       <GridColumn Field="@nameof(Asset.AssetId)" Title="ID" Width="50px"/>
       <GridColumn Field="@nameof(Asset.BarCode)" Title="BarCode" Width="125px"/>
       <GridColumn Field="@nameof(Asset.UserId)" Title="User" Width="125px">
           <Template>
                @{
                    CurrentAsset = (Asset)context;
                    Person? p = People.FirstOrDefault<Person>(x => x.Id == CurrentAsset.UserId);
                    if(p != null)
                    {                        
                        <span>@p.LastFirst</span>
                    }
               }
           </Template>
           <EditorTemplate>
               @{
                    CurrentAsset = (Asset)context;
                   <TelerikDropDownList
                        Data = "@People"
                        @bind-Value="@CurrentAsset.UserId"
                        TextField="LastFirst"
                        ValueField="Id"
                   />

               }
           </EditorTemplate>
       </GridColumn>
        <GridCommandColumn Width="100px" Locked="true">
            <GridCommandButton Command="Save" Icon="save" ShowInEdit="true"></GridCommandButton>
            <GridCommandButton Command="Edit" Icon="edit"></GridCommandButton>
            <GridCommandButton Command="Delete" Icon="delete"></GridCommandButton>
            <GridCommandButton Command="Cancel" Icon="cancel" ShowInEdit="true"></GridCommandButton>
        </GridCommandColumn>        
   </GridColumns>
</TelerikGrid>

<br />

@code {
    public List<Person> People = new();
    public List<Asset> Assets = new();
    int SelectedUser = 0;
    Asset CurrentAsset = new();

    protected override void OnInitialized()
    {
        LoadData();
        base.OnInitialized();
    }

    public void LoadData()
    {
        People.Add(new Person(1, "Brent", "Tuominen"));
        People.Add(new Person(2, "Tina", "Tuominen"));
        People.Add(new Person(3, "Casey", "Tuominen"));
        People.Add(new Person(4, "Ryan", "Tuominen"));
        People.Add(new Person(5, "Alex", "Tuominen"));

        Assets.Add(new Asset(1, "BC001"));
        Assets.Add(new Asset(2, "BC002"));
        Assets.Add(new Asset(3, "BC003"));
        Assets.Add(new Asset(4, "BC004"));
        Assets.Add(new Asset(5, "BC005"));
    }

    public void Update(GridCommandEventArgs args)
    {
        Asset a = (Asset)args.Item;
        Asset? asst = Assets.FirstOrDefault(x => x.AssetId == a.AssetId);

        if(asst != null)
        {
            asst.BarCode = a.BarCode;
            asst.UserId = a.UserId; 
        }
        StateHasChanged();
    }

    public class Asset
    {
        public Asset()
        {
            
        }
        public Asset(int assetId, string barcode)
        {
            AssetId = assetId;
            BarCode = barcode;
        }
        public int AssetId{ get; set; }
        public string BarCode { get; set; } = string.Empty;
        public int? UserId{ get; set; }
    }

    public class Person
    {
        public Person(int id, string fName, string lName)
        {
            Id = id;
            FirstName = fName;
            LastName = lName;
        }
        public int Id{ get; set; }
        public string FirstName { get; set; } = string.Empty;
        public string LastName { get; set; } = string.Empty;
        public string LastFirst
        {
            get
            {
                return LastName + ", " + FirstName;
            }
        }
        public string FullName
        {
            get
            {
                return FirstName + " " + LastName;
            }
        }
    }
}