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.
Hi Telerik Support
This is related to the feedback portal item: The Grid header gets focus only for the first time when tabbing
I had raised the above issue, now I can see that the issue is fixed in 7.0.0. But the fix does not work when the TelerikGrid is inside a TelerikWindow.
Please find the REPL sample https://blazorrepl.telerik.com/QIvmPrlI39rZ4whP10
Is there a work around for the scenario where the grid is inside a popup window?
Regards
Bably
On a grid grouped by a field (using GroupDescriptors) where the amount of records exceed the page limit, therefore generating multiple pages, provide an option to keep the collapsed/expanded states of the groups when navigating through the pages.
In-house we implemented the following approach to mitigate this issue: when calling OnRead event, after processing the data (order, filter, group, etc) we're mapping the groups and subgroups to its corresponding indexes. When page changing, we then store the current state of the groups, alongside its keys (aka the label of the group). After page changing and mapping the groups and subgroups again, we just match the group names stored in this temporary state with the group names of the new page and restore the state.
For example: start with all groups initially collapsed, page 1 has groupA and groupB and user expanded groupB, changed to page 2, which has the remaining records of groupB and groupC. In this case it will restore groupB as expanded while groupC keeps collapsed.
Example to demonstrate the issue: https://blazorrepl.telerik.com/melmEeFi43owNZBe50
Hi,
Can I request that the Pdf Viewer:
- Load multiple pdf files on open. Maybe via an array of file names.
- We use a different viewer due to this capability. For Human Resource files you need the ability to load numerous files into one viewer to show a complete
document. The current one file option doesn't work for us.
- Display thumbnails of the loaded pages.
- Thumbnail onclick to move to a specific page.
Regards,
Graham O'Riley
See https://blazorrepl.telerik.com/GyPvFMFr00zLEEdG00
Idea from: Blazor QuickGrid
<GridColumn For="@(t => t.Name)">
<Template>
<div>
@item.Name
</div>
</Template>
</GridColumn>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
});
}
}
}
Hi Team,
I am looking for captcha component to verify user as human like below screenshot. Please let me know if this feature is available
Would be nice to have an Expansion Panel like this one:
https://material-ui.com/components/expansion-panels/
I get validation issues for the selection Checkboxes and the PageSizes dropdown as they do not have id or name attributes:
The behavior can be reproduced in the online demo: Blazor Data Grid - Overview