Hello,
I am currently reworking an old webapp with server-side Blazor and Telerik UI for Blazor. I noticed that TelerikDialogs kind of break the rerendering of child components if the TelerikDialog and all of its content are placed inside their own component:
<PageTitle>Home</PageTitle>
<EditWithDialog @ref="EditDialogInside"></EditWithDialog>Where EditWithDialog is (basically) defined as follows:
<TelerikDialog @ref="Dialog" @bind-Visible="@Visible">
<DialogTitle>
Edit ID
</DialogTitle>
<DialogContent>
<div>
<div>TelerikDialog inside of component</div>
<TelerikTextBox Value="@AppState.CustomerString" OnChange="@SetID" Width="300px"></TelerikTextBox>
<TelerikButton OnClick="@GenerateID">Generate ID</TelerikButton>
</div>
</DialogContent>
<DialogButtons>
<TelerikButton OnClick="@ToggleVisible">Close</TelerikButton>
</DialogButtons>
</TelerikDialog>
However, if the TelerikDialog is placed on a page and its content is placed inside of its own component, everything works as expected:
<PageTitle>Home</PageTitle>
<TelerikDialog @bind-Visible="@Visible">
<DialogTitle>
Edit ID
</DialogTitle>
<DialogContent>
<div>
<div>TelerikDialog outside of component</div>
<EditWithoutDialog @ref="EditDialogOutside"></EditWithoutDialog>
</div>
</DialogContent>
<DialogButtons>
<TelerikButton OnClick="@ToggleEditOutside">Close</TelerikButton>
</DialogButtons>
</TelerikDialog>EditWithoutDialog.razor:
<TelerikTextBox Value="@AppState.CustomerString" OnChange="@SetID" Width="300px"></TelerikTextBox>
<TelerikButton OnClick="@GenerateID">Generate ID</TelerikButton>I am using the state-container approach described here, but the problem persists when using two-way binding via parameters.
In this scenario, putting the dialog directly on the page is not a problem, but with larger applications where there's possibly multiple dialogs and a lot more content on one page, this can become very unwieldy and confusing. Considering Blazors emphasis on making components reusable, this also prevents proper use of a customized dialog component that uses the TelerikDialog as a base.
I have attached a small project that implements both versions on a single page for you to test. I have tested using both Edge and Firefox.
We are using Telerik UI for Blazor (V6.2.0) grid. The first 3 columns (Delivery No, Spot Check, Spotcheck Status) of the grid are frozen/locked. While horizontal scrolling the header text gets overlapped. We have used custom CSS to change the header color.
<TelerikGrid @ref="@GridRef" Data="@dashboardData"
Reorderable="true"
SortMode="@SortMode.Single"
Pageable="true"
FilterMode="GridFilterMode.FilterRow"
PageSize="10"
EnableLoaderContainer="true"
Sortable="true" Context="inboundContext" OnRowRender="@OnRowRenderHandler" Width="1800px" Height="500px">
Hi,
Are you planning to add a loader to the grid in the feature?
E.g as an isLoading attribute or exepnd the build-in one?
With method OnRead to fetch data, when grid is not yet loaded with data, it displays no records available.
Also when chenging data, loading is not starting, but there is an unsmooth transition after some time.
Thanks in advance for your time, Kacper
The website uses OAuth2 (AzureAd) & https with http version 1 :
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1"
}
Crash systematically reproduced when user opens website.
The issue can be can be manually & individually (per user) fixed by:
Our client is pushing hard for us to find an automatic solution / patch (which doesn't involve making multiple actions for his users like in my workaround).
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>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
I've noticed this warning is now shown since version 9.0.0. I checked the release notes and don't see any notes reflecting this change. I also checked the documentation and don't see any information about the OnUpdate event. Can we please update the documentation to document the changes? I would like to understand the behavior of OnUpdate so I can move away from ValueChanged.
"warning CS0618: 'TelerikFilter.ValueChanged' is obsolete: 'Use OnUpdate instead.'"
Since <TelerikGrid> is implemented as two separate <table>s, one for the headers and a second for the grid, it does not show repeated headers on subsequent pages when using the browser's Print feature.
Due to limitations of the <TelerikGrid> export functionality, I use the browser print function to export PDFs.
I need the table headers to duplicate on subsequent printed and exported pages.
I wonder if there is a way to duplicate the <thead> info in the second table and suppress its display but enable it for @media Print.
More details in ticket 1691848
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
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
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 guys,
I know you probably gonna redirect me to these topics:
https://feedback.telerik.com/blazor/1581128-ability-to-change-the-color-of-the-shape-on-click
But that is not a solution. The OnShapeClick-Event of the TelerikMap still triggers only if you click the shape, that was added last. Which means if I have 3 shapes in my TelerikMap, only a click on the third map will lead to the OnShapeClick event being triggered.
This is not a feature request, as you told Michael in his bug report und not at all related to the feature request of chaning a shape's color up on clicking it...but this is clearly a bug.
Please provide some short feedback on how / when this will be solved. Otherwise as a user of Blazor UI I have to manually write JavaScript Code, dismantle the DOM, trigger Interop-Methods etc. to achieve that behavior that should actually just work out of the box as documented.
Thanks and best regards!
Sebastian