Hello,
related to my previous bug report.
When Add / Edit is clicked in the Grid, it causes a Dialog to open.
The dialog has a Form, and if the model for that form is set through OnParametersSet, the method is called in an infinite loop, and the Dialog never gets shown.
I have come across a few instances where it would be awesome if the Data Collection on a MultiSelect, or even a DropDown could have a dynamic property to denote if the option in the collection is selectable. The use case is around items being disabled but remain intact on historical records. If I remove the item currently from the collection then the component no longer shows the item as selected because it isnt in the collection. If I leave the item in the collection, then it shows, but, can then be selected on future items, which I dont want. Would be awesome if I could pass a component parameter, similar to TextField, which is the bool property for if the option in the dropdown is selectable/disabled. This would then make it so that the item could be REMOVED, but not readded or selected on future records unless the value for the property was set back to true.
Please add a property (e.g., OpenOnFocus or AutoOpenOnEdit) to dropdown-based components (such as DropDownList, ComboBox, or inline grid editors) to automatically open the dropdown when the component gains focus or enters edit mode.
Why This Matters
In data-dense UIs — like inline grid editing, cutover task assignment, or status changes — users often need to:
Currently, dropdowns often require an additional manual click to open — which slows down power users and disrupts workflows in editable grids.
When following the Blazor UI code examples for the Grid, the source for index.cshtml contains the following:
@page "/grid/index"
@using Telerik.Blazor.Components.Grid
@using TelerikBlazor.Shared
@inject HttpClient Http
Notice that the using directive for the Shared component doesn't have a . separating Telerik and Blazor. It should read:
@using Telerik.Blazor.Shared
Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit '_2TiBAG0g2G9PCcWgKc-G4zmfFAGiDJEO7pd7Jbjxpk'.
System.IO.FileLoadException: Could not load file or assembly 'Telerik.DataSource, Version=1.2.0.0, Culture=neutral, PublicKeyToken=20b4b0547069c4f8'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'Telerik.DataSource, Version=1.2.0.0, Culture=neutral, PublicKeyToken=20b4b0547069c4f8'
at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
Did I miss installing something.
Used the installer telerik.ui.for.blazor.2.1.0.commercial.msi
In release 2.0.0 it was possible to set default property Visible to "true" for AnimationContainer. That is now gone. How do I make the AnimationContainer visible per default, i.e without calling ShowAsync() in some stage?
Br,
Sten
On the demo page, when I hover over menu items "Overview" and "Demos" and "Roadmap" it changes background color to gray. When I load it into a project with the verbatim demo code no background color change occurs except on "Roadmap".
<TelerikMenu Data="@MenuItems"
In data grids it can sometimes be quite helpful to be able to export the content for use outside of the application.
In these cases it can be common to export to CSV or PDF.
It would be helpful to have a TreeGrid control which is quite similar to a data grid however it allows hierarchy relationships among the items.
This would essentially have all the features of the standard data grid however one column would be expandable.
Hi,
Ran in to an issue here. To avoid modals getting hidden behind animation containers, we use a class for a div and "wrap" the modal in providing it with a higher z-index than the animation container(s).
However, when using a DatePicker inside this module the calender will be hidden behind the modal (since it is in an animation container).
Any suggestion how to overcome this problem?
Thanks & br,
Sten
When I create multiple tabs and each tab has the same type of component, the OnInitialized is only running for the first one I click on.
Here is a simplified example to demonstrate:
MAIN PAGE:
@page "/tabtest"
@using Telerik.Blazor.Components
<div>Product XYZ</div>
<TelerikTabStrip TabPosition="Telerik.Blazor.TabPosition.Top" @ref="productTabStrip" @bind-ActiveTabIndex="@ActiveTabIndex">
<TabStripTab Title="Details">
<div class="container sms-tab-content">
GENERAL PRODUCT INTRO STUFF HERE
</div>
</TabStripTab>
@foreach (var item in listOfWidgets)
{
<TabStripTab Title="@item.WidgetName" Disabled="false">
<Widget WidgetID="@item.WidgetID" WidgetName="@item.WidgetName" />
</TabStripTab>
}
</TelerikTabStrip>
<div style="margin-top: 15px;">
<div><b>Below is a flat non-tab example of repeating widgets:</b></div>
@foreach (var item in listOfWidgets)
{
<Widget WidgetID="@item.WidgetID" WidgetName="@item.WidgetName" />
}
</div>
@code {
Telerik.Blazor.Components.TelerikTabStrip productTabStrip;
public int ActiveTabIndex { get; set; } = 0;
protected class Widget
{
public int WidgetID { get; set; }
public string WidgetName { get; set; }
}
private List<Widget> listOfWidgets = new List<Widget>();
protected void GetData()
{
listOfWidgets.Add(new Widget { WidgetID = 1, WidgetName = "Cog" });
listOfWidgets.Add(new Widget { WidgetID = 2, WidgetName = "Wheel" });
listOfWidgets.Add(new Widget { WidgetID = 3, WidgetName = "Bloof" });
}
protected override void OnInitialized()
{
GetData();
}
}
WIDGET COMPONENT:
@page "/widget/{WidgetID:int}/{WidgetName}"Admin edit: While this cannot become a built-in feature, you may find useful the following example: https://github.com/telerik/blazor-ui/tree/master/common/grpc-example
Hello Team;
As .Net Core 3 offers gRPC support, I'm suggesting that the Blazor Team, look into some of the components that could automatically talk to backend gRPC services to get data, i.e. Auto Complete or DropDown box.
This way it could simplify different ways of providing datasource to some of these data oriented components.
Hope this suggestion helps!
..Ben
I have a TelerikComboBox in an EditorTemplate within a Grid. Code looks like this:
<TelerikComboBox Data="@CustomerPayCodes"
@bind-Value="@PayItemMapInEdit.ClientPayCode.UniqueId"
Placeholder="Select..."
Filterable="true"
TextField="PayCodeDisplayName"
ValueField="UniqueId"
@ref="_clientPayCodeComboBox"
Width="auto"
Enabled="@(string.IsNullOrEmpty(_payItemTextBoxRef?.Value))">
</TelerikComboBox>
Where reference prop looks like this:
private TelerikComboBox<PayCode, Guid> _clientPayCodeComboBox;
When adding a new row, the Placeholder text becomes the empty GUID, until I click in the box and then outside, upon it changes to correct "Select...". The GUID is never supposed to be showed at all in the box, that is only the binded value.
See attached pictures.
Please advice.
Br,
Sten
I have an animationcontainer which I in overridden OnAfterRenderAsync(bool firstRender) call:
await AnimationContainerSettings.ShowAsync();
...since it is the only way to show the AnimationContainer from start. However, when I in some cases return to the page, the animationcontainer will only show itself if I delay the call with e.g. 1000 ms:
await Task.Delay(1000);
await AnimationContainerSettings.ShowAsync();
What could be possible reasons for this be? If I want my AnimationContainer to be visible as default when page is either Initialized or after rendering has occured, where and how should I call ShowAsync()?
Br,
Sten
I want to prevent users without WriteAccess to see the GridCommandColumn and a custom GridColumn containing some buttons.
Those two columns are the first in my grid.
If I add AuthorizeView tags like this
<AuthorizeView Policy="MyPolicy">
<GridCommandColumn ...>
...
</GridCommandColumn>
</AuthorizeView>
<AuthorizeView Policy="MyPolicy">
<GridColumn ...>
...
</GridColumn>
</AuthorizeView>
they will be hidden if the user does not comply to the policy but if he does comply the columns are displayed not as the first columns in the grid but as the last.
As a workaround I now don't hide the columns but their content (by moving the AuthorizeView tags inside the column tags). This is not a good solution though since I loose valuable horizontal screen-space for displaying empty columns.