Hello everyone,
Here are the highlights of the new online resources we published this week from 20 Oct 2025 to 27 Oct 2025:
Article: https://www.telerik.com/blazor-ui/documentation/upgrade/rendering-changes/9-0-0
Summary:
This article documents the rendering changes in Telerik UI for Blazor
9.0.0, including updates to component DOM structure and CSS class names
that can affect styling and selectors. Use it to identify breaking
changes, update custom CSS and UI test selectors, and apply the
component-specific migration steps after upgrading.
Article: https://www.telerik.com/blogs/blazor-vs-javascript-blazor-right-choice-next-project
Summary:
This article compares Blazor vs JavaScript frameworks and gives you
practical decision criteria based on team skills, app requirements,
performance, hosting, and SEO. It explains Blazor WebAssembly and Blazor
Server trade-offs (payload size, startup time, latency, persistent
connections, offline support) versus React/Angular/Vue and the broader
JavaScript ecosystem, and outlines when to choose Blazor for end-to-end
.NET and code sharing versus JavaScript for minimal bundles and access
to front-end libraries.
Feel free to check them out and share your thoughts!
The Telerik Team
---------------------------------------------------------------------------------------------------------------------------------------------------------
Hello everyone,
Here are the highlights of the new online resources we published this week from 13 Oct 2025 to 20 Oct 2025:
Article: https://www.telerik.com/blazor-ui/documentation/knowledge-base/grid-access-gridsearchbox-value
Summary: The article shows how to get the current search text from the Telerik UI for Blazor GridSearchBox so you can use it in custom logic. Capture it by binding GridSearchBox.Value or handling ValueChanged in the Grid toolbar; for OnRead/server binding, extract the quick-search term from GridReadEventArgs.Request.Filters (the OR composite filters produced by the search) or from the grid state via OnStateChanged.
Article: https://www.telerik.com/blazor-ui/documentation/knowledge-base/dockmanager-add-content-pane-footer
Summary: Add a sticky footer to a Telerik UI for Blazor DockManager ContentPane by wrapping the pane content in a full-height container and using CSS (flex column or grid) so the main area scrolls while the footer stays pinned to the bottom across docked, floating, and tabbed states. The article shows the pane content structure and required styles (height: 100%, overflow, borders) to place actions or status info in the footer without affecting the DockManager layout.
Article: https://www.telerik.com/blazor-ui/documentation/knowledge-base/scheduler-add-hyperlinks-in-appointments
Summary: Learn how to add clickable hyperlinks inside Telerik UI for Blazor Scheduler appointments by rendering anchor tags in the appointment template and binding them to a URL field. The article shows how to prevent the Scheduler’s edit/drag behavior from intercepting clicks (e.g., with @onclick:stopPropagation and optionally @onpointerdown:stopPropagation or draggable=false) and how to open links safely in a new tab.
Article: https://www.telerik.com/blazor-ui/documentation/api/telerik.blazor.components.schedulerrecurrenceeditmode
Summary: SchedulerRecurrenceEditMode is an enum in Telerik.Blazor.Components that tells the Blazor Scheduler whether an operation targets a single occurrence, the entire series, or the following occurrences of a recurring appointment. Use it in your Scheduler CRUD event handlers and data logic to apply edits and deletes to the correct set of items, including when you replace the built-in recurrence prompt with custom handling.
Feel free to check them out and share your thoughts!
The Telerik Team
---------------------------------------------------------------------------------------------------------------------------------------------------------
Hello everyone,
Here are the highlights of the new online resources we published this week from 06 Oct 2025 to 13 Oct 2025:
Article: https://www.telerik.com/blogs/blazor-basics-using-local-storage-save-restore-form-input
Summary: You will use IJSRuntime to interact with browser localStorage, serialize your form model to JSON, and hook EditContext.OnFieldChanged and OnAfterRenderAsync to save and restore Blazor form input. The article walks through wiring an EditForm to persist changes as users type, repopulate values on first render (including Blazor Server after prerender), and clear storage on submit, with guidance on key management, debouncing, and avoiding sensitive data. Apply this to keep form state across reloads and navigation in Blazor WebAssembly and Server.
Feel free to check them out and share your thoughts!
The Telerik Team

The documentation at the link below explaining how to prevent the user from having to clear cache when upgrading from one Telerik version to another has an issue with the css priority. My app targets .net 9 but I wasn't able to get the first solution using MapStaticAssets() to work so I implemented the second solution using cache busting. That resolved the caching error but it put the priority of all.css above any css I have in a style element in my component.
In my specific case I have a grid and I want the values in one of the columns to be links but using an anchor element in a grid doesn't underline and turn the content blue so I added css into my style tag in my component:
.k-grid a {
color: #0d6efd;
text-decoration: underline;
}
That works fine normally, but when I upgraded to the current version of Telerik and had cache issues and followed the cache busting instructions in the link, the content no longer looks like a link. See dev tools screenshots with and without cache busting.
https://www.telerik.com/blazor-ui/documentation/knowledge-base/common-browser-cache-buster
With cache busting it doesn't look like a link because all.css takes priority:
Without cache busting:
Any way to get around this?

Hi there
I'm trying to use DropDownlist with the Grouping field and the OnReadEvent, with mode = DropDownScrollMode.Scrollable
The OnRead event provides the grouping field to the request. The request is sent to my (API) server that handles the request, and the result is returned . Then after my OnReadHandler method ands, I get an internal exception: "System.NullReferenceException: 'Object reference not set to an instance of an object.'"
with following stack:
Telerik.Blazor.dll!Telerik.Blazor.Components.Common.TelerikSelectBase<SNG.LccNion.API.Model.Dto.IDDescriptiveDto, string>.ProcessGroupData(System.Collections.IEnumerable data) Unknown
Telerik.Blazor.dll!Telerik.Blazor.Components.Common.TelerikSelectBase<SNG.LccNion.API.Model.Dto.IDDescriptiveDto, string>.SetProcessedData(System.Collections.IEnumerable data) Unknown
Telerik.Blazor.dll!Telerik.Blazor.Components.TelerikDropDownList<SNG.LccNion.API.Model.Dto.IDDescriptiveDto, string>.SetProcessedData(System.Collections.IEnumerable data) Unknown
Telerik.Blazor.dll!Telerik.Blazor.Components.Common.DataBoundComponent<SNG.LccNion.API.Model.Dto.IDDescriptiveDto>.ProcessOnReadResult(Telerik.Blazor.Components.ReadEventArgs args) Unknown
Telerik.Blazor.dll!Telerik.Blazor.Components.Common.TelerikSelectBase<SNG.LccNion.API.Model.Dto.IDDescriptiveDto, string>.ProcessOnReadResult(Telerik.Blazor.Components.ReadEventArgs args) Unknown
Telerik.Blazor.dll!Telerik.Blazor.Components.Common.DataBoundComponent<SNG.LccNion.API.Model.Dto.IDDescriptiveDto>.ProcessOnReadData() Unknown
[Resuming Async Method]
> System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.Threading.Tasks.VoidTaskResult>.AsyncStateMachineBox<Telerik.Blazor.Components.Common.DataBoundComponent<SNG.LccNion.API.Model.Dto.IDDescriptiveDto>.<ProcessOnReadData>d__39>.ExecutionContextCallback(object s) Line 292 C#
System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Line 179 C#
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.Threading.Tasks.VoidTaskResult>.AsyncStateMachineBox<Telerik.Blazor.Components.Common.DataBoundComponent<SNG.LccNion.API.Model.Dto.IDDescriptiveDto>.<ProcessOnReadData>d__39>.MoveNext(System.Threading.Thread threadPoolThread) Line 372 C#
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.Threading.Tasks.VoidTaskResult>.AsyncStateMachineBox<Telerik.Blazor.Components.Common.DataBoundComponent<System.__Canon>.<ProcessOnReadData>d__39>.MoveNext() Line 350 C#
System.Private.CoreLib.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__12_0(System.Action innerContinuation, System.Threading.Tasks.Task innerTask) Line 281 C#
System.Private.CoreLib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback callback, object state, ref System.Threading.Tasks.Task currentTask) Line 697 C#
System.Private.CoreLib.dll!System.Threading.Tasks.Task.RunContinuations(object continuationObject) Line 3486 C#
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Telerik.Blazor.Components.ReadEventArgs>.SetResult(Telerik.Blazor.Components.ReadEventArgs result) Line 478 C#
[Completed] Telerik.Blazor.dll!Telerik.Blazor.Components.TelerikDropDownList<SNG.LccNion.API.Model.Dto.IDDescriptiveDto, string>.TriggerReadAsync(Telerik.DataSource.DataSourceRequest request) Unknown
I am struggling to handle the request correctly and provide an answer back to the list that it can handle properly.
Nevertheless I get errors. Is there a working example of using the OnRead event with the GroupField property set to a property of the TItem? Or is this combination impossible inspite of DropDownScrollMode.Scrollable mode?
BTW - In case of large dropdownlist result set I want to fall back to virtual mode, and drop the grouping option, as it is documented that these are not compatible. (This is handled blazor side by checking the dataset count before the first OnRead call)

I've tried to find documentation on how to modify the CSS for the dropdownlist and it's popup but can't seem to figure out how to change the "Search" area size, nor the "Select Type" (they are too large).
I was able to figure out how to adjust the actual items:
.custom-compact-dropdownlist-popup .k-list-item {
padding-top: 2px;
padding-bottom: 2px;
font-size: 0.90em;
}
and reference:
<DropDownListSettings>
<DropDownListPopupSettings Class="custom-compact-dropdownlist-popup" />but I don't know what to use in CSS ... is there a list somewhere of the ".k" class selectors?
Rob.

Is it possible to change the headings in the column chooser menu?
This is supported in other Telerik products by using the Messages property which is absent in Blazor
I'm looking at ThemeBuilder Ultimate for use in my Blazor-Server UI project. I went thru the 3 year old intro video but it's very out dated and seems to focus on Kendo UI. There is no mention on how to get a ThemeBuilder project into an existing Blazor UI project?
Also, I assume ThemeBuilder Pro/Ultimate are separate subscriptions from my existing Blazor UI Complete subscription? Your pricing material seems a bit confusing:
Why list Theme Builder ultimate under DevCraft Complete if it's not actually included in the DevCraft Complete subscription?
Theme builder looks to be a nice powerful and easy to use UI tool so I'd like more information before I make funding requests.
Rob.

In my _Host.cshtml:
<link href="_content/Telerik.UI.for.Blazor/css/kendo-theme-material/all.css?@telerikUiForBlazorVersion" rel="stylesheet" />In my page code:
<TelerikGrid TItem="@BookingModel"
@ref="@BookingGridRef"
Height="225px"
Resizable="false"
FilterMode="Telerik.Blazor.GridFilterMode.FilterMenu"
SelectionMode="GridSelectionMode.Single"
SelectedItems="@SelectedBookings"
OnRowClick="@OnBookingRowClick"
OnRowDoubleClick="@OnBookingRowDoubleClick"
OnRead="@OnBookingGridRead"
Sortable="true"
Reorderable="true"
Pageable="true"
@bind-Page="@CurrentBookingGridPage"
EnableLoaderContainer="false"
Size="@ThemeConstants.Grid.Size.Small"
PageSize="25">Setting the Size has no impact on the UI (Small, or Medium, or Large) renders the same.
In addition, setting RowHeight to a value has no impact on the UI:
<TelerikGrid TItem="@BookingModel"
@ref="@BookingGridRef"
Height="225px"
Resizable="false"
FilterMode="Telerik.Blazor.GridFilterMode.FilterMenu"
SelectionMode="GridSelectionMode.Single"
SelectedItems="@SelectedBookings"
OnRowClick="@OnBookingRowClick"
OnRowDoubleClick="@OnBookingRowDoubleClick"
OnRead="@OnBookingGridRead"
Sortable="true"
Reorderable="true"
Pageable="true"
@bind-Page="@CurrentBookingGridPage"
EnableLoaderContainer="false"
RowHeight="(decimal)12.5"
PageSize="25">It doesn't seem to matter what Theme I use in the _Host.cshtml file, RowHeight and Size are completely ignored?
Ultimately what I would like is to augment and Telerik theme with just a few changes, but I can't see any way to achieve this without going down the entire custom theme route, which I really don't have time for.
Rob.
