I my understanding, the simplest way to get a coding agent provide better assistance to a very specific product like telerik blazor, is by just providing the documentation.
My first experiments with the telerik mcp server are not succesful. I would think that linking the full documentation directly to the coding agent can seriously lead to better results.
AI Coding agents are doing a great job with more standard frontend framework like react, they seem to be common knowledge. We know that Blazor and in particular Telerik blazor is a niche product (not only niche, but also NICE), so coding agents needs to have clear instructions on everything.
Of course, i don't know how your documentation system works, and how easy it would be to generate .md files from this?
Thanks for looking into this matter
Don't hesitate to contact me directly for further questions or whatsoever.
warm regards
paul
We'd like to track the community demand for using the Telerik Blazor components as Custom Elements.
Please share example common scenarios for such usage and list the components you want to register as Custom Elements to use in other SPA frameworks such as Angular or React.
URL: https://blazorrepl.telerik.com/QJkQPwlw09eSCmk905?_gl=1%2a1wzzh94%2a_gcl_au%2aODg2NjQ4ODc0LjE3NDMwNjY1NTI.%2a_ga%2aODYwMDgyNjY4LjE3MzI3OTMyMTA.%2a_ga_9JSNBCSF54%2aczE3NDc2MzAyNjkkbzUkZzEkdDE3NDc2MzYwMjYkajE4JGwwJGgwJGRHVjE1OElLdHB0ZXJwc1VOWHNzTWlJTEhVVlVQckU0Ynd3
Screen Readers: NVDA (2024.4.2.35031), JAWS (2025.2504.89), Narrator
Screen reader is announcing as 'Select files button collapsed'.
Refer Attachment:
1. Screen reader is not announcing label and note information for 'Select files' button.png
2. Screen reader is not announcing label and note information for 'Select files' button.mp4
I noticed that when the ReadTimeout property of the FileSelect's FileInfoStream is read, the code seem to block completely.
You will find a Blazor Web App project attached to this ticket showcasing the issue.
When enabling/disabling a form element that is defined in a child component, the element is successfully disabled, however a console error occurs. The error occurs whether the child component makes the update or the parent makes the update through a passed parameter. The error does not occur for form elements defined in the parent. The error does not occur for basic html input elements defined in the child.
Element definition:
<TelerikTextBox
Id="ElementMisc"
AutoComplete="new-password"
@bind-Value="@_searchModel.ElementMisc"
Enabled="!_elementSelectMode"
class="textbox-75"
DebounceDelay="0">
</TelerikTextBox>
Update Code defined in child:
if (results.Data.Count > 1)
{
_elementSelectMode= true;
StateHasChanged();
}
Console Error:
Uncaught (in promise) Error: Assertion failed - heap is currently locked
at mr (blazor.web.js:1:158963)
at Object.beginInvokeDotNetFromJS (blazor.web.js:1:157244)
at w.invokeDotNetMethodAsync (blazor.web.js:1:3978)
at C.invokeMethodAsync (blazor.web.js:1:5486)
at r.invokeMethodAsync (telerik-blazor.js:22:1272553)
at r.onBlur (telerik-blazor.js:22:1463592)
at ye.setOrRemoveAttributeOrProperty (blazor.web.js:1:28630)
at ye.applyAttribute (blazor.web.js:1:27574)
at ye.applyEdits (blazor.web.js:1:24601)
at ye.updateComponent (blazor.web.js:1:23606)
If user input should control which pointers that are visible as in this example:
@page "/gauge"
<div>
<TelerikCheckBox Id="display_second" @bind-Value=_displaySecond></TelerikCheckBox>
<label for="display_second">Display second pointer</label>
</div>
<TelerikRadialGauge>
<RadialGaugePointers>
<RadialGaugePointer Value="55" />
@if (_displaySecond)
{
<RadialGaugePointer Value="75" Color="red" />
}
</RadialGaugePointers>
</TelerikRadialGauge>
@code {
bool _displaySecond;
}
The size of the RadialGauge is not set correctly if changing properties from user input.
@page "/gauge"
<div>
<TelerikCheckBox Id="large" @bind-Value=_large ></TelerikCheckBox>
<label for="large">Large</label>
</div>
<TelerikRadialGauge Width=@(_large ? "500px" : "200px") Height=@(_large ? "500px" : "200px")>
<RadialGaugePointers>
<RadialGaugePointer Value="55" />
</RadialGaugePointers>
</TelerikRadialGauge>
@code {
bool _large;
}Nothing happens with the gauge in the example above, I would expect it to be larger when ticking the checkbox.
If using F12 in the browser I can see that the outer element get the correct size, but not the inner svg...
Issue: Opening and closing a window will cause the window to reopen with each following OnClick. This seems to have been introduced with the upgrade to .net10
Code: Below is an example used on the basic Telerik Blazor template. Copy this and replace Home.razor with it.
@page "/"
<PageTitle>Telerik Blazor App | Home</PageTitle>
<div id="home-page">
<HomeSvg />
<h1>Hello, Telerik UI for Blazor!</h1>
<p>Welcome to your new Telerik Blazor app.</p>
<TelerikButton OnClick="OpenWindow1">Click Here First</TelerikButton>
<TelerikButton OnClick="OpenWindow2">Click Here Second</TelerikButton>
<TelerikButton OnClick="@(async () => {await Task.Delay(100);})">Unrelated OnClick</TelerikButton>
</div>
<TelerikWindow Visible="ShowWindow1">
<WindowActions>
<WindowAction OnClick="CloseWindow1" Name="Close"></WindowAction>
</WindowActions>
<WindowContent>
<span>Moving window now will help find this window in next step, but not necessary to replicate bug.</span>
<br />
<span>Close window using 'X'.</span>
</WindowContent>
</TelerikWindow>
<TelerikWindow Visible="ShowWindow2">
<WindowActions>
<WindowAction OnClick="CloseWindow2" Name="Close"></WindowAction>
</WindowActions>
<WindowContent>
<span>Window 1 shouldn't be appearing now, but it it is. Window 1 may be behind this window if you didn't drag in previous step.</span>
<br />
<span>If you close these windows, and click the 'Unrelated OnClick' button, both of these windows will reappear, despite just firing Task.Delay(100)</span>
</WindowContent>
</TelerikWindow>
<style>
#home-page {
margin-left: auto;
margin-right: auto;
max-width: max-content;
text-align: center;
font-size: var(--kendo-font-size-xl);
}
@@media (min-height: calc(56px + 50px + 400px)) {
/* header + footer + home page container*/
#home-page {
margin-top: calc(50vh - 28px - 25px - 200px);
}
}
</style>
@code {
public bool ShowWindow1 { get; set; }
public bool ShowWindow2 { get; set; }
public async Task OpenWindow1()
{
ShowWindow1 = true;
}
public async Task OpenWindow2()
{
ShowWindow2 = true;
}
public void CloseWindow1()
{
ShowWindow2 = false;
StateHasChanged();
}
public void CloseWindow2()
{
ShowWindow2 = false;
}
}
Hi,
I have a new laptop with a fresh install of visual studio and telerik etc etc. When I went to get the ai coding assistants to work, nothing I did worked. Spent hours trying to figure it out when Claude suggested I install NODE. After I did that, and went the the telerik blazor extension to "Configure MCP server globally" the ai worked.
First, have the configuration check to see if node is working and installed and give a warning if it is not, or let people know that it needs to be installed to make it work. Secondly, add this to the documentation. Such a pain in the ass when the documentation isn't complete. The amount of time i spent on this is stupid compared to how simple the solution was.
Peter
Hello
I notice that zoom on chart with numeric values make the axis values with a lot of decimal and didn't find a way to round them.
We can see it directly in the documentation here
Is there a way to keep the axis to rounded value ?
Thank you
Regards,
Thomas
The TelerikPanelBar component is using Right and Left arrows on keyboard to opening and closing each tab.
https://demos.telerik.com/blazor-ui/panelbar/keyboard-navigation
When the page is zoomed to 200%, it gets a horizontal scrollbar, which is normally controlled with the left and right arrow keys on keyboard. However, these keys are assigned to opening and closing the TelerikPanelBar component, which makes it impossible to scroll the page horizontally while we have Tab on TelerikPanelBar. Is there any workaround that would allow horizontal scrolling with the left and right arrow keys on keyboard at this zoom level? Maybe it’s possible to change TelerikPanelBar behavior and opening and closing it by different keys?
When a TelerikComboBox is defined inside a window and the ContainmentSelector attribute is set for that window, the ComboBox exhibits erratic behavior: it sometimes fails to open, and selections from the dropdown may not register. Overall, the ComboBox does not function reliably in this configuration.
See attached video for current behavior.
If the ContainmentSelector attribute is removed, TelerikComboBox works as expected.
See attached example to reproduce the issue.
Hello,
it seems that something is missing to get it working in "SpeecToTextButton".
how to reproduce:
it flickers for a while(at system taskbar, there is also indication of recording) but nothing is "recorded/transcribed".
Is there any additional setup at clientside?
The latest version has broken one of our projects due to;
So we deliberately used both events which worked quite well (but is now disallowed);
<TelerikGrid Data="@SheetList"
@ref="_grid"
SelectionMode="@GridSelectionMode.Multiple"
@bind-SelectedItems="@SelectedSheets"
EditMode="GridEditMode.Inline"
OnRowContextMenu="@OnContextMenu"
OnRowClick="@OnRowClick"
OnAdd="OnAddHandler"
OnEdit="@OnEditHandler"
OnUpdate="OnUpdateHandler"
OnCreate="OnCreateHandler"
OnDelete="OnDeleteHandler"
OnRead="@(IsFromHierarchy ? null : OnReadItemsAsync)"
This pattern enabled us to create components that did EITHER server-side pagination, or if it was send a data list as a parameter from a parent component, then it would use that instead (and turn off server pagination).
What would now be the recommended pattern for this scenario? Or do we need to duplicate the whole grid in the component (which isnt ideal).
Hello,
I am experiencing a crash when trying to remove a FilterField from a TelerikFilter component when using it inside a TelerikDialog. From what I understand, the documentation for the TelerikFilter is out of date ('TelerikFilter.ValueChanged' is obsolete: 'Use OnUpdate instead.') so I did my best trying to put the piece together.
The TelerikFilter code is based on the updated Telerik sample provided here: 'TelerikFilter.ValueChanged' is obsolete: 'Use OnUpdate instead.' but updated based on the documentation for "Filter in a Dialog" provided here: Blazor Dialog Integration - Telerik UI for Blazor
Here is my code:
<TelerikDialog @ref="@DialogRef" Visible="@ShowDialog" Width="600px" Title="My Dialog" VisibleChanged="@WindowVisibilityChangeHandler">
<DialogContent>
<TelerikFilter Value="@Value" OnUpdate="@((value) => OnFilterUpdate(value))">
<FilterFields>
<FilterField Name="@(nameof(Person.EmployeeId))" Type="@(typeof(int))" Label="Id"></FilterField>
<FilterField Name="@(nameof(Person.Name))" Type="@(typeof(string))" Label="First Name"></FilterField>
<FilterField Name="@(nameof(Person.AgeInYears))" Type="@(typeof(int))" Label="Age"></FilterField>
</FilterFields>
</TelerikFilter>
</DialogContent>
<DialogButtons>
<TelerikButton OnClick="@(() => ResetDialogState())">Cancel</TelerikButton>
<TelerikButton ThemeColor="@(ThemeConstants.Button.ThemeColor.Primary)" OnClick="@(() => PrimaryAction())">Confirm</TelerikButton>
</DialogButtons>
</TelerikDialog>@code {
private CompositeFilterDescriptor Value { get; set; } = new CompositeFilterDescriptor();
private void OnFilterUpdate(object filter)
{
if (filter is null)
{
return;
}
Value = (CompositeFilterDescriptor)filter;
DialogRef.Refresh();
}
public class Person
{
public int EmployeeId { get; set; }
public string Name { get; set; } = string.Empty;
public int AgeInYears { get; set; }
}
}The TelerikFilter renders fine and I can add Filters by clicking the "Add Expression" button. However, when I try to remove a filter that was added, I click on the X button on the right. The first time, nothing happens. When I click a second time, I get this error:
Unhandled exception rendering component: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.ObjectModel.Collection`1.RemoveAt(Int32 index)
at Telerik.Blazor.Components.Filter.FilterGroup.OnFilterRemove(Int32 index, String removedFilterId)
at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)I also have attached a video of the issue to this ticket.
Is this a bug? If not, can you point me in the right direction?
Thanks,
Mathieu
Hi Telerik Team!
We’ve noticed that your official website uses anchor scrolling (clicking on links to scroll to specific sections smoothly), and we’d love to see that as a Telerik Blazor component.
This would be super useful in scenarios where:
The only way to present content is via long scrollable pages
Tabs aren’t a good UX fit
-Smooth scrolling to internal page anchors (sections)
-Scrollspy-like feature to highlight active section
-Optional scroll offset for sticky headers
-Lightweight, flexible integration (with or without Telerik Form/Layout components)
We feel this would be a great addition to the Telerik Blazor suite — especially for documentation-style pages, long forms, or configuration panels.
Thanks a lot and keep up the awesome work!
Best regards,
Bohdan
In the TelerikSignature control, the ExportScale property defaults to 2. This causes the image size to be doubled without realizing it. While it can be useful to scale the exported image, the default should be 1, because that is the expected default output.
<TelerikSignature @bind-Value="Medlog.Signature" Width="700px" Height="120px" Smooth="true" StrokeWidth="2" PopupScale="2" ExportScale="1">
</TelerikSignature>