I'm trying to figure out how to get smooth scrolling experience when virtul scroll mode is used. Some of the cells in my data can contain a couple, or over 100 words (or more), and when scrolling, the rows skip and jump in an obvious way, and it's not acceptable. I've tried to wrap my head around the RowHeight property without really understanding what it means. As each row in my data can be of different height, setting the proper RowHeight gets inpossible. What is the recommended solution in scenarios like mine? The users would like to see all the content of the cells.
I coded up my own virtual scroll table in javascript some time ago, where I calculated the row height for each row, depending on the text content of the cells, and that made it possible to calculate the total virtual height of the table achieve smooth scroll. Is there a way to do the same for the TelerikGrid? I'd like to convert to Blazor and TelerikGrid, to get the benefits of sorting, filtering and all that. Using virtual scroll IS probably necessary because there can be hundreds of thousand rows, and the users would prefer to not using paging...
Appreciate any tips here.
Grid code:
<TelerikGrid Data="@MyData"
Size="@ThemeConstants.Grid.Size.Small"
ScrollMode="GridScrollMode.Virtual"
Sortable="true"
FilterMode="@GridFilterMode.FilterRow"
RowHeight="100"
PageSize="50"
Width="1000px"
Height="600px">
<GridColumns>
<GridColumn Title="#" Width="100px">
<Template>
@{
var row = context as ExpandoObject;
var rowIndex = MyData.IndexOf(row) + 1;
}
@rowIndex
</Template>
</GridColumn>
@{
foreach (var item in MyData.First())
{
<GridColumn Field="@item.Key" FieldType="@item.Value.GetType()"
Title="@item.Key.Replace("_"," ")"
Width="@(item.Key.EndsWith("3") ? "300px" : "75px")">
</GridColumn>
}
}
</GridColumns>
</TelerikGrid>Just a sample picture of sample data in a sample table:

Hello,
I have a splitter with 2 pane's and in each pane a grid with sizable columns.
When one resizes a column in a grid inside a pane of the splitter one of the panes collapses instead of resizing the column.
Please note: Only the first time when the page is opened it is going not good!
Kind regards,
demo code to reproduce:
We have 2 different instances of Window:
Editor always has too much content to show and Windows automatically adds a vertical scroll bar. Editor's content is a number of Telerik controls "statically" defined in the Razor. We also define a height and width.
Details is mostly a <table> with rows built from a foreach loop. We don't specify a Height or Width. Sometimes there's too many rows to fit in the dialog given the browser or screen size. Details does not display a vertical scroll bar when there is too much content so much of it is hidden.
How can we get the vertical scroll bar on the Details instance described above?



I'm still new to these components, but when any On***Click event is fired on the Grid, when using GridScrollMode.Virtual, the Grid scrolls back to top. This only happens when using virtual scrolling. I don't know if the Grid is rerendered or just scrolls up, it's hard to know.
Feels like a bug, as it works well when not using virtual scrolling. I've tried setting the args.ShouldRender = false, without any luck.
When I create a form with auto-generated fields and disable one of them (see code), the field indeed cannot be edited, but the associated spinner remains active (is a numeric field in this case), allowing the modification of the field's value. I believe that the underlying editor of the field (regardless of its type: datepicker, combobox, dropdownlist, numerictextbox or colorpicker) should be disabled when the FormItem is disabled, as it creates inconsistencies in the UI.
<FormItems>
<FormItem Field="@nameof(ViewModel.SomeField)" />
<FormItem Field="@nameof(ViewModel.NumericField)" Enabled="@some_variable"/>
</FormItems>As the title says, I am trying to use the @onkeydown Event in a TreeView ItemTamplate.
The reason for doing this is so I can manipulate the default navigation behaviour of the TreeView and immediately select an item when using the Up and Down Arrows instead of having to press the Enter key.
I am aware of the documentation that shows how to react to @onclick Blazor Treeview - Templates - Telerik UI for Blazor.
I can get @onclick to work but not @onkeydown or any other input related events besides mouse events.
Using Telerik 3.6.0
Below is a code sample which shows what I am trying to do but is not working.
When debugging and setting a breakpoint in the NodeKeyDown Method, I can not reach it.
<TelerikTreeView Data=“@TreeData”><TreeViewBindings><TreeViewBinding><ItemTemplate> @{ TreeItem itm = context as TreeItem;
<span @onkeydown=“@(_ => NodeKeyDown(_))” tabindex=“0”> Node: <strong>@itm.Text</strong></span>
}
</ItemTemplate>
</TreeViewBinding>
</TreeViewBindings>
</TelerikTreeView>
<label id=“result”>@result</label>
@code { string result { get; set; }
async Task NodeKeyDown(KeyboardEventArgs args)
{
result = $"You pressed key: {args.Code}";
}
// sample data
public IEnumerable<TreeItem> TreeData { get; set; }
public class TreeItem
{
public string Text { get; set; }
public int Id { get; set; }
public List<TreeItem> Items { get; set; } = new List<TreeItem>();
public bool HasChildren { get; set; }
}
protected override void OnInitialized()
{
LoadHierarchical();
}
private void LoadHierarchical()
{
List<TreeItem> roots = new List<TreeItem>()
{
new TreeItem { Text = "Item 1", Id = 1, HasChildren = true },
new TreeItem { Text = "Item 2", Id = 2, HasChildren = true }
};
roots[0].Items.Add(new TreeItem { Text = "Item 1 first child", Id = 3 });
roots[0].Items.Add(new TreeItem { Text = "Item 1 second child", Id = 4 });
roots[1].Items.Add(new TreeItem { Text = "Item 2 first child", Id = 5 });
roots[1].Items.Add(new TreeItem { Text = "Item 2 second child", Id = 6 });
TreeData = roots;
}
Between the Signature Component and the PDF Processing component I'm having a hard time figuring out how to present a pdf file on a Blazor page for the user to read. Then have a user provide their signature and save that file with the signature imbedded.
I feel like I'm missing and or confusing steps here.. Can someone help me out?
@using [***].Common.Dtos;
@using [***].Common.Enumerations;
@using [***].Features.EmployeeInfoAndTravelRequestLists.TravelRequestListingTab
@if (ViewModel is not null)
{
<!-- Render loader until grid initial data load is complete -->
@if(!ShouldRenderGrid)
{
{
<div style="height:500px">
<TelerikLoaderContainer></TelerikLoaderContainer>
</div>
}
} else
{
<TelerikGrid OnRead="@TravelRequestGridOnReadAsync"
Class="grid-no-scroll"
TItem="@TravelRequestFullDto"
EnableLoaderContainer="true"
Pageable="true"
Sortable="true"
SortMode="SortMode.Multiple"
PageSize="10"
SelectionMode="@GridSelectionMode.Single"
FilterMode="GridFilterMode.FilterMenu">
<!-- dropdown, search box and new request button above grid -->
<GridToolBarTemplate>
<div class="dropdown-list-container">
<TelerikDropDownList Width="100px" Data="@ViewModel.EmployeeStatuses" @bind-Value="ViewModel.EmployeeStatusDDLSelectedValue">
<DropDownListSettings>
<DropDownListPopupSettings Height="58px" />
</DropDownListSettings>
</TelerikDropDownList>
</div>
<GridSearchBox Placeholder="Name/SAP/Personal ID..."
Width="280px" />
<button class="new-request-button"><span class="k-icon k-i-plus"></span>New Request</button>
</GridToolBarTemplate>
<GridColumns>
<GridCheckboxColumn SelectAll="false" Width="40px" />
<GridColumn Title="SAP Number" Width="195px">
<Template>
@{
var SAPNumber = ((TravelRequestFullDto)context).SAPNumber;
var RequestStatus = ((TravelRequestFullDto)context).Status;
// render a chip in travel request number column if record has a request status
<span>
@SAPNumber
<span class="cell-padding" />
<TelerikChip Class="travel-request-status-chip"
Text=@TravelRequestStatusExtensions.ToDisplayValue(RequestStatus)
Disabled=true
Rounded="full"
ThemeColor=@GetChipColorClass(RequestStatus) />
</span>
}
</Template>
</GridColumn>
<GridColumn Title="Workday Number" Field="@(nameof(TravelRequestFullDto.WorkdayNumber))" Width="140px" />
<!-- other grid columns here.... -->
</GridColumns>
</TelerikGrid>
}
}