I'm trying out Telerik in an existing Blazor WebAssembly project. In order to try it out, I'm adding Telerik components next to the existing HTML elements so I can see how they compare. I have a question about how to set the column width in TelerikGrid. I'd like to set the width based on whichever is larger: the content or the header title.
I tried setting Width="auto" but that didn't work. I tried setting Width to a fixed width, but I'd like to avoid hardcoding the width like that.
Please see the attached image. It shows two tables:
1. The existing table using a regular HTML table with Bootstrap classes "table table-striped". Notice how the columns have different widths.
2. The TelerikGrid with the same headers and data. Notice how the columns are all the same width.

I've use the Telerik WPF grid for years and have recently started to move away from WPF dev. to Blazor dev. In WPF to instigate an edit the user can click a row, then double click a cell and start to edit it which works perfectly because selection of the row(s) can not start an edit.
In Blazor the Incell grid edits are started as soon as the user clicks the grid removing the option to select one or many rows. My applications require both of these interactions but this method of grid edits doesn't seem to be compatible with selection of rows etc.
Is there any way of changing the behaviour of how these Incell grid edits are started? (ideally in the same way the WPF version in cell edits work) or are there likely to be ways of changing this behaviour in future with newer updates?
Many thanks,
Rob

Hello,
I have a Telerik grid with data from a List<UserRoleModel> userRoles. This model and table (only) contains the fields UserId, and the RoleId.
I want to show the description of the Role (Field 'Description' of Table 'Roles where Roles.Id = RoleId') and the combined name of the user (Fields 'Firstname + Lastname' from table 'Users where Users.Id = UserId) in two extra custom grid columns next to the UserId and RoleId columns which are in the grid already (see code).
I probably have to use a column template and have been playing with that, but the documentation I could find is not clear and does not provide a clear sample. I could create two extra fields in the UserRoleModel but I can imagine that a more easy way is possible.
Hope that somebody can give me a simple sample / snippet.
regards, Marc Verkade
private List<UserRoleModel>? userRoles = new List<UserRoleModel>();
<TelerikGrid @ref="TheGrid"
Class="grid"
Data=@userRoles
Navigable="true">
<GridColumns>
<GridColumn Field="@nameof(UserRoleModel.UserId)" Title="User Id" />
<GridColumn Field="@nameof(UserRoleModel.RoleId)" Title="Role Id" />
<GridColumn Field="<The field Firstname + lastname from table Users>" Title="User name" />
<GridColumn Field="<The field Description' from table Roles" Title="Role name">
</GridColumns>
</TelerikGrid>
I have a DropDownList where each element has a button to open a TelerikContextMenu as such:
The problem is that sometimes the dropdown is closed and the menu not, like so:
Here is my code:
@namespace Appia.UiKit
@using Telerik.Extensions;
@using Appia.Entidades;
@using static Appia.Tests.Victor.TestWidget;
@inject IViewRepository ViewRepository
<TelerikDropDownList @ref="DropDownRef" TItem="ValueWrapper<string>" TValue="string" Data="ListOfViews" Filterable="true" FilterOperator="@StringFilterOperator.Contains"
FillMode="@ThemeConstants.DropDownList.FillMode.Flat" Class="" Width="min-content" ItemHeight="38"
Value="@ActiveViewId" ValueChanged="OnChange" OnClose="OnClose" AdaptiveMode="@AdaptiveMode.Auto">
<ValueTemplate>@context.Text</ValueTemplate>
<NoDataTemplate>No hay ninguna vista disponible</NoDataTemplate>
<ItemTemplate>
<div class="k-hbox w-100 k-border-bottom k-border-dark" >
<div class="k-flex-grow k-align-self-center">@context.Text</div>
<div @onclick:stopPropagation="true">
<TelerikButton Icon="@(AppiaIcons.Stack)" OnClick="@HandleContextMenuButton" FillMode="@ThemeConstants.Button.FillMode.Flat"></TelerikButton>
</div>
</div>
</ItemTemplate>
<FooterTemplate>
<div class="k-border-t-only" @onclick:stopPropagation="true">
<TelerikButton Icon="@AppiaIcons.Favourite" Class="w-100 k-text-start" FillMode="@ThemeConstants.Button.FillMode.Flat">Establecer como predeterminada</TelerikButton>
<TelerikButton Icon="@AppiaIcons.Compose" Class="w-100 k-text-start" FillMode="@ThemeConstants.Button.FillMode.Flat">Editar vista</TelerikButton>
<TelerikButton Icon="@AppiaIcons.Globe" Class="w-100 k-text-start" FillMode="@ThemeConstants.Button.FillMode.Flat">Renombrar vista</TelerikButton>
<TelerikButton Icon="@AppiaIcons.Duplicate" Class="w-100 k-text-start" FillMode="@ThemeConstants.Button.FillMode.Flat">Duplicar vista</TelerikButton>
</div>
</FooterTemplate>
<DropDownListSettings>
<DropDownListPopupSettings Height="430px" Width="min-content" Class="shadow-5" AnimationDuration="0" />
</DropDownListSettings>
</TelerikDropDownList>
<TelerikContextMenu @ref="@ViewItemMenuRef" Data="@ActionItems"></TelerikContextMenu>
@code {
[Parameter] public ViewInstance ViewInstance { get; set; }
public TelerikContextMenu<ActionItem>? ViewItemMenuRef { get; set; }
public TelerikDropDownList<ValueWrapper<string>, string> DropDownRef { get; set; }
public List<ValueWrapper<string>> ListOfViews { get; set; } = new();
public bool IsCancelled = false;
public string? ActiveViewId;
public List<ActionItem> ActionItems { get; set; } = new()
{
new () { Text = "Activar", Icon = AppiaIcons.Eye },
new () { Text = "Establecer como predeterminada", Icon = AppiaIcons.Favourite },
new () { Text = "Editar", Icon = AppiaIcons.Compose },
new () { Text = "Renombrar", Icon = AppiaIcons.Information },
new () { Text = "Eliminar", Icon = AppiaIcons.Delete },
new () { Text = "Duplicar", Icon = AppiaIcons.Duplicate }
};
protected override async Task OnInitializedAsync()
{
ActiveViewId = this.ViewInstance.ActiveView.Id;
this.ListOfViews = await ViewRepository
.ListAvailableAsync(this.ViewInstance.ActiveView.TipoDeVista, this.ViewInstance.ActiveView.EntityType)
.ThenSelect(x => new ValueWrapper<string>(x.Id, x.Nombre))
.Then( x => x.ToList() );
await base.OnInitializedAsync();
}
public async Task OnRead(DropDownListReadEventArgs args) => await ViewRepository.ListAvailableAsync(ViewInstance.ActiveView.TipoDeVista, ViewInstance.ActiveView.EntityType, async db => await db.ToDataSourceReadEvent(args));
public async Task HandleContextMenuButton( MouseEventArgs args )
{
IsCancelled = true;
await ViewItemMenuRef?.ShowAsync( args.ClientX, args.ClientY );
}
public void OnClose( DropDownListCloseEventArgs args )
{
args.IsCancelled = IsCancelled;
IsCancelled = false;
}
public void Close()
{
IsCancelled = false;
DropDownRef.Close();
IsCancelled = true;
}
public void OnChange( string args )
{
this.ActiveViewId = args;
Close();
}
}
Therefore I need a way to close the menu programaticlly that I will fire when the dropdown list is closed.
I would als like to have listeners on the TelerikContextMenu to know when it's closed, this way I could close the dropdown.
How could I do that?
Thanks

Are there any examples or suggested methods of modifying the way FormAutoGeneratedItems renders? I understand that I can do individual fields with templates - but for the most part we only need a minor tweak (add red * for required fields).
There may be an obvious approach, but I don't yet see it - looking to see if anyone has done anything similar

Hi,
I'm using the TK UI for Blazor Grid.
This is the table:
| First Name | Last Name | Height | Position | Points per game |
| Stephen | Curry | 191 | Point Guard | 28 |
| Klay | Thompson | 201 | Shooting Guard | 21 |
I have created an add new item method which allows me to enter all fields manually. Is there a way in TK to copy e.g the first row and paste it to the open form?
Of course, we have around 50 columns in real world and our Users find it exhausting to manually enter all fields.
Thanks for any hint

Hi All
In order to keep axis labels readable when a chart is resized, one can change the rotation Angle, or simply reduce the # of labels using the Step property. I do have a nifty routine for this,
But, In order to do this my method would have to know the dimensions (e.g. width/heigth in px) of the targeted chart area.
How can I obtain these dimensions?
Regards,
Hans

Hello all,
In my app I use tile layout to let the user manage a bunch of charts and other things. when in "edit mode" I want the headers of the tiles to be displayed, but in "browse" mode I want the headers of the tiles to be invisible as the title of the tile et all is already in the chart displayed in the tiles content.
Using an empty <HeaderTemplate> I still get an empty one line header for each tile.
Is there a way around this,? Otherwise, please see this as a FR.
Regards,
Hans

I have a datepicker on my page and on load I want to set its initial value to a date I get from a DB table.
I also want the user to be able to pick a date to set it to and it auto updates the page objects base don that new picked date.
I have the auto refresh working on the OnChange event but for some reason I cant set the objects first initial date!
REPL:
//want to do something like:
DTR11.value = DTR11_selectedDate;