I would like to use the new structs that are part of .NET6 - the DateOnly and TimeOnly.
Their support should extend to all respective date and time pickers and more complex components like the Grid, Gantt, Scheduler, and other applicable components.
Describe the bug
The class 'k-tabstrip' item is missing in the rendering of the TabStrip component.
To Reproduce
1. Go to the following demo and open the DevTools:
https://demos.telerik.com/blazor-ui/tabstrip/overview
2. Check the source of truth:
https://github.com/telerik/kendo-themes/blob/develop/tests/tabstrip/tabstrip.html
Actual results
The class 'k-tabstrip-item' is missing.
Expected behavior
The class 'k-tabstrip-item' to be present.
Additional context
ThemeBuilder generates styles for the items of the TabStrip component with selectors like these:
.k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items.k-reset.k-tabstrip-items-start .k-item.k-tabstrip-item.k-active .k-link
This works in other technologies, such as Kendo React, but it doesn't take effect in Blazor applications because of the issue.
Reported through t.1672526.
Docking Control like WPF Docking Control: https://www.telerik.com/products/wpf/docking.aspx
=== EDITED BY TELERIK ===
When using nullable enums, their DisplayNameAttrute doesn't show in the Grid.
https://blazorrepl.telerik.com/QTOlwiaM456Yh9Xp33
The bug is related to Enum DisplayName attributes are ignored in view mode of the Grid
=== ORIGINAL POST CONTENT ===
Sample Code to reproduce the error:
https://blazorrepl.telerik.com/QzYPGLFj11s0rZwp47
If you change line 44 to a non-nullable field type, it crashes the grid with an error message in the CSS file. I have included the error message I get in my blazor app with the same code above, console then sources:
I saw the FloatingActionButton Web control available in KendoUI and ASP.NET Core and I would like it in UI for Blazor: https://demos.telerik.com/kendo-ui/floatingactionbutton/index
After reading your documentation, it appears that the Pager Position enum only allows for the grid pager to be at the top OR the bottom of the grid.
It would be most excellent to allow it to be BOTH. For very large grids, it would be convenient for the user to see the grid at the very top, but if they do happen to need to scroll to the very bottom of the grid, seeing the pager component there would also be convenient for the user.
This is in regard to this page:
https://www.telerik.com/blazor-ui/documentation/components/grid/paging
Please add a .Both option to the PagerPosition enum that allows both Top and Bottom at the same time.
Thanks! :)
Within the grids, be able to filter and group using And & Or statements. The following is our design.
Good Morning,
I have recently started getting random and repeated Javascript errors when debugging my project using your controls for Blazor. It is completely random (sometimes happens immediately at project start, sometimes when navigating to a new page, sometimes when interacting with a control). It is ALWAYS the same error....
TypeError: Cannot read properties of undefined (reading 'visible')
Message=
Source=
StackTrace:
at __webpack_modules__.8219.constructor.onMouseEnter (https://localhost:44307/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?v=ITaQSsBTBmdJoUpPr2KiZ7JwhfKjwa7SGa6zvlv9kkU:50:1442661)
I am using the most current version of your product. I have gone through your "Javascript Errors" page and have worked through all the suggestions. Nothing resolves it.
This is becoming a giant time sink while trying to work on a project. What can we do to get appropriate error handling on your end to prevent these issues?
Thanks
I recently had a breakthrough moment in my journey learning and using Telerik Blazor that I believe highlights a crucial area for improvement in your documentation strategy. I believe that this will significantly help me learn and use your components, I suspect others may still fall into the same trap as me. I'm confident that implementing this suggestion will make the learning process considerably easier for all users.
As a developer with over 35 years of experience, my initial approach to learning new technologies is to rely heavily on official documentation. I expect to find comprehensive resources that facilitate a smooth learning curve. However, after years of struggling with Telerik Blazor components, I stumbled upon the Component Demos section (https://demos.telerik.com/blazor-ui). This discovery, triggered by a specific Google search for "telerik blazor drawer submenu," is a game-changer.
The Component Demos contain a wealth of practical examples for each component, offering invaluable "cut-and-paste" starting points. Before this, I primarily relied on StackOverflow and other online resources and until today, I finally landed on the Telerik Blazor Component demos. The fact that I have been unaware of this resource for so long represents a significant shortcoming in the current documentation. How easy it would be to add a link in the overview to the component's demos which would have saved me countless hours of trying to solve problems that have already been solved on the demos page, like the Drawer submenu mentioned above.
Integrating direct links to each component's respective demo page within the main documentation would dramatically improve the discover-ability of these demos and empower users to independently solve many common challenges. Currently, the limited examples within the documentation are insufficient for comprehensive understanding.
In summary, prominently featuring the Component Demos within the core Telerik Blazor documentation would vastly enhance the learning experience, reduce support requests, and empower developers to utilize the full potential of your components.
Peter
We would like the ability to customize the calendar's month header.
For instance, we would like to add a row displaying the month name and year, as shown in the attached screenshot.
I generated a new project using the Telerik Blazor Template for server side.
In the _Host.cshtml file on line 27 it generates the following:
<a href class="reload">Reload</a>
Should be
<a href="" class="reload">Reload</a>
Have a nice day.
Peter
For example, selecting Bootstrap-Main-Dark theme in the Project Wizard does not apply the dark mode.
===ADMIN EDIT===
For the time being, a possible workaround is to manually add class="k-body" to the <body> tag of your application. This will ensure, that the dark mode is correctly applied. This is required because, by design, the Default theme does not enable the typography system. The "k-body" class is required for the typography system to work properly on the document level and apply the predefined typography values to the page. For more detailed information, refer to Design System Documentation.
I am handling the SelecteditemsChanged event of the Grid and when an exception is thrown in its handler, the ErrorBoundarydoes not catch it.
For reference, I tried attaching the same handler to a click of a button and it is successfully caught by the ErrorBoundary in this case.
Further to issue reported in https://feedback.telerik.com/blazor/1545177-selected-items-are-not-preserved-when-loading-the-state-when-the-component-is-bound-to-expandoobjects wrt Expando Object, the column menu reset also does not work when grid is bound to Expando Object
Regards
Naved
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
});
}
}
}
For God's sakes I've spent 20 minutes on your site trying to figure out how to download your demos. Every link takes me that USELESS TelererkUIForBlazorSetup.exe. Syncfusion my be the worst but at least you don't have to google something that should be so redundant it's everywhere.
I finally gave up and had to google it to find it on Github. Absolutely worst experience ever.
When viewing the documentation ( https://docs.telerik.com/blazor-ui ), it would be great to be able to run the code from my browser, just like https://www.w3schools.com/cs/index.php which allows you to run, play and preview the code from the website.
The reason this is so important is that people will be able to quickly test and try out variations of the demo code and do a quick test to see if they got it right. Right now I either have to load the demo solution, make changes, compile the entire solution just to try small changes to the sample code, and then end up corrupting the demo solution.
I think this would be a great feature for all the demos that would support it. And set you apart from your competition.