If you use the FloatingLabel, when you tab into the DateInput control, the cursor is set at the very end of the text of the date format. However, if you do not use the FloatingLabel, and you tab into the DateInput control, the placeholder text is selected.
Reproduction: https://blazorrepl.telerik.com/wQlvclOZ14jEKaXU38.
===
ADMIN EDIT
===
The report is initially opened for DateInput, however, it also targets the rest of the date pickers that are compatible with FloatingLabel.
When you type something in the grid searchbox, there will be a X at the end to clear the box.
However, if you restore the grid from previously stored state like localstorage, and if the box has value, the X is not there.
Thanks!
I am overriding the built-in Add command and setting an InsertedItem through the TreeList state. However, it looks like the the built-in validation is invoked twice and two validation Tooltips are displayed for the field.
Try to use a Calendar (@bind-RangeStart, @bind-RangeEnd) and Date Input (@bind-value) with the same value bound to them. You can't correctly change the date upon input, it shows only today's date.
-------------------- ADMIN EDIT --------------------
The workaround for such a scenario is to not use the @bind-RangeStart, @bind-RangeEnd in Calendar with the same value as Date Input @bind-value. See the code below.
Razor:
<TelerikCalendar Views="1"
View="CalendarView.Month"
SelectionMode="CalendarSelectionMode.Range"
RangeStart="@StartTime"
RangeEnd="@EndTime"
RangeStartChanged="@((DateTime value) => { StartTime = value.Date + value.TimeOfDay; })"
RangeEndChanged="@((DateTime value) => { EndTime = value.Date + value.TimeOfDay; })">
</TelerikCalendar>
<br />
START DATE: @StartTime
<br />
END DATE: @EndTime
<br />
<TelerikDateInput @bind-Value="@inputTimeForStartDate" OnBlur="@OnBlurHandlerFirst" Format="hh:mm">
</TelerikDateInput>
<TelerikDateInput @bind-Value="@inputTimeForEndDate" OnBlur="@OnBlurHandlerSecond" Format="hh:mm">
</TelerikDateInputC#:
DateTime inputTimeForStartDate { get; set; }
DateTime inputTimeForEndDate { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
private void OnBlurHandlerFirst()
{
StartTime += inputTimeForStartDate.TimeOfDay;
}
private void OnBlurHandlerSecond()
{
EndTime += inputTimeForEndDate.TimeOfDay;
Use a ToolBar with its ToolBarTemplateItem (with DropDownList inside of the template) in a separate component. Try to switch values in the DropDownList with the arrows of the keyboard. The value in the DropDownList does not change until you move away from it with a right arrow. This only happens when the template with the dropdown inside is in a separated component.
-------------------- ADMIN EDIT --------------------
The workaround for such a scenario is to export the DropDownList too onto a separated component and then call it in the ToolBarTemplateItem. See the attached sample project.
That's pretty weird but nevertheless very specific: if the Scheduler is loaded with POCO objects from EntityFramework with LazyLoading enabled (Castle.Proxies objects) them the k-event-drag-hint box is not shown (!)
It took me some time to figure it out...
The code below compiles and doesn't give any browser errors when run, but when you collapse a row, all data is collapsed and you can't expand it again.
If you change the line that generates the data to use a List instead of IEnumerable it will work as expected.
REPRODUCIBLE
<TelerikTreeList Data=Data
IdField="@nameof(Record.Id)"
ParentIdField="@nameof(Record.ParentId)"
Height="100%">
<TreeListColumns>
<TreeListCheckboxColumn CheckBoxOnlySelection="true" />
<TreeListColumn Field="@nameof(Record.Text)" Title="" Expandable="true" />
<TreeListColumn Field="@nameof(Record.Id)" Title="ID" />
<TreeListColumn Field="@nameof(Record.ParentId)" Title="PARENT" />
</TreeListColumns>
</TelerikTreeList>
@code {
protected IEnumerable<Record> Data = new List<Record>();
protected override void OnInitialized()
{
Data = Enumerable.Range(1, 10).Select(i => new Record(i));
}
public class Record
{
public Record(int i)
{
Id = i;
if (i % 5 == 1)
ParentId = null;
else
ParentId = (i - ((i - 1) % 5));
Text = "Item " + i;
}
public long Id { get; set; }
public long? ParentId { get; set; }
public string Text { get; set; }
}
} WORKAROUND
<TelerikTreeList Data=Data
IdField="@nameof(Record.Id)"
ParentIdField="@nameof(Record.ParentId)"
Height="100%">
<TreeListColumns>
<TreeListCheckboxColumn CheckBoxOnlySelection="true" />
<TreeListColumn Field="@nameof(Record.Text)" Title="" Expandable="true" />
<TreeListColumn Field="@nameof(Record.Id)" Title="ID" />
<TreeListColumn Field="@nameof(Record.ParentId)" Title="PARENT" />
</TreeListColumns>
</TelerikTreeList>
@code {
protected List<Record> Data = new List<Record>();
protected override void OnInitialized()
{
Data = Enumerable.Range(1, 10).Select(i => new Record(i)).ToList();
}
public class Record
{
public Record(int i)
{
Id = i;
if (i % 5 == 1)
ParentId = null;
else
ParentId = (i - ((i - 1) % 5));
Text = "Item " + i;
}
public long Id { get; set; }
public long? ParentId { get; set; }
public string Text { get; set; }
}
}
I'm experiencing a flickering in the TreeList InCell Editing demo here: https://demos.telerik.com/blazor-ui/treelist/editing-incell
Steps to reproduce:
1. Click on "Mountain Bikes"
2. Click on "Road Bikes"
3. Click on "Touring Bikes"
It can actually be reproduced by clicking on any three editable cells.
Any ideas?
Thank you.
A RadioGroup inside a Grid EditorTemplate will fire OnBlur when the user clicks on it. This will close the edit cell and (usually) not apply the new value.
Here is a test page: https://blazorrepl.telerik.com/wvbmkMvd48rpMN4547
I want the user to only be able to select times between, for example, 11AM and 1PM. Setting Min and Max does not limit that, I can select any time:
Selected time: @selectedTimeWhen a TelerikComboBox is defined inside a window and the ContainmentSelector attribute is set for that window, the ComboBox exhibits erratic behavior: it sometimes fails to open, and selections from the dropdown may not register. Overall, the ComboBox does not function reliably in this configuration.
See attached video for current behavior.
If the ContainmentSelector attribute is removed, TelerikComboBox works as expected.
See attached example to reproduce the issue.
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,
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
Hy,
It is possible to have default color themes (Primary,Dark,Info,Error,...) for Telerik Blazor Grid component as well without having to change the color by css overriding?
Grid OnRead .Clear() Issue
With the following component:
@page "/counter"
@using System.Collections.ObjectModel
General grid with its most common features
<TelerikGrid Data="@MyData" Pageable="true" @bind-Page="page" PageSize="5" TotalCount="30" OnRead="@ReadItems" >
<GridColumns>
<GridColumn Field="@(nameof(SampleData.Id))" Width="120px" />
<GridColumn Field="@(nameof(SampleData.Name))" Title="Employee Name" Groupable="false" />
<GridColumn Field="@(nameof(SampleData.Team))" Title="Team" />
<GridColumn Field="@(nameof(SampleData.HireDate))" Title="Hire Date" />
</GridColumns>
</TelerikGrid>
@code {
public List<SampleData> MyData { get; set; } = new List<SampleData>();
//public ObservableCollection<SampleData> MyData { get; set; } = new ObservableCollection<SampleData>();
private int page = 1;
private void ReadItems(GridReadEventArgs args)
{
//MyData = new List<SampleData>(); //OK!
//MyData = new ObservableCollection<SampleData>(); //OK!
MyData.Clear(); //List: No update. ObservableCollection: System.StackOverflowException!
Populate();
StateHasChanged();
}
private void Populate()
{
foreach (var data in Enumerable.Range((page - 1) * 5, 5).Select(x => new SampleData
{
Id = x,
Name = "name " + x,
Team = "team " + x % 5,
HireDate = DateTime.Now.AddDays(-x).Date
}))
{
MyData.Add(data);
}
}
public class SampleData
{
public int Id { get; set; }
public string Name { get; set; }
public string Team { get; set; }
public DateTime HireDate { get; set; }
}
}I see the issues in the comment fields. Changing OnRead to async makes no difference.
The workaround is to assign a new List or ObservableCollection instead of using .Clear()