Used a MacBook Pro for this test.
The Min and Max parameters of the DateInput, DatePicker and TimePicker don't work if the component Value is of type DateOnly or TimeOnly. Here is a test page:
<p>
Allowed dates between @DateInputMin.ToShortDateString() and @DateInputMax.ToShortDateString(). Enter an invalid date:
</p>
Nullable DateTime (if out of range, will <strong style="color:green">nullify</strong>):
<TelerikDateInput @bind-Value="@NullableDateTimeValue"
Min="@DateInputMin"
Max="@DateInputMax"
Width="120px" />
@NullableDateTimeValue?.ToShortDateString()
<br />
<br />
DateTime (if out of range, will <strong style="color:green">autocorrect</strong>):
<TelerikDateInput @bind-Value="@DateTimeValue"
Min="@DateInputMin"
Max="@DateInputMax"
Width="120px" />
@DateTimeValue.ToShortDateString()
<br />
<br />
Nullable DateOnly (if out of range, will <strong style="color:red">accept</strong>):
<TelerikDateInput @bind-Value="@NullableDateOnlyValue"
Min="@DateInputMin"
Max="@DateInputMax"
Width="120px" />
@NullableDateOnlyValue?.ToShortDateString()
<br />
<br />
DateOnly (if out of range, will <strong style="color:red">accept</strong>):
<TelerikDateInput @bind-Value="@DateOnlyValue"
Min="@DateInputMin"
Max="@DateInputMax"
Width="120px" />
@DateOnlyValue.ToShortDateString()
@code {
private DateTime DateTimeValue { get; set; } = DateTime.Today;
private DateOnly DateOnlyValue { get; set; } = DateOnly.FromDateTime(DateTime.Today);
private DateTime? NullableDateTimeValue { get; set; } = DateTime.Today;
private DateOnly? NullableDateOnlyValue { get; set; } = DateOnly.FromDateTime(DateTime.Today);
private DateTime DateInputMin { get; set; } = DateTime.Today.AddYears(-10);
private DateTime DateInputMax { get; set; } = DateTime.Today;
}
The input should be focused after the user clicks the clear button.
Reproduceable example: https://blazorrepl.telerik.com/wSEgunbK46sVmd1p02
In my use case, I have custom components that wrap each of the telerik date controls (date picker, time picker, etc). They each expose a SelectedDate/SelectedTime/etc. bindable property. The SelectedDate is populated when the telerik control in my component (like TelerikDatePicker) fires OnChange. I use this instead of ValueChanged to avoid too many UI updates while the user selects a value in the UI, such as when typing. The OnChange event fires when the date input loses focus, but if the date input didn't have focus when the clear button is clicked, it never loses foucs and never fires OnChange. Let me know if this isn't intended to be supported and I should just be using ValueChanged instead, but to me OnChange would imply it would fire in all cases when the value can also change through ValueChanged, just less often.
Steps to reproduce (I used a TelerikDatePicker in the code above but I could reproduce this locally with date time picker and time picker - it's related to the underlying DateInput):
When I discovered this locally, clicking the clear button would not clear the date visually from the date input as well as not updating the actual date variable. In the REPL, I was not able to replicate this - the date clears visually in the UI.
The DateInput rendering performance worsened in version 4.6.0 and the component renders more slowly. This is easily visible when there are multiple DateInputs on the page:
4.5.0: https://blazorrepl.telerik.com/mdPFuXFI02i7Ulbo52
4.6.0: https://blazorrepl.telerik.com/GdlbEXPe00IhfKWN29
When you check and uncheck the checkbox, the DateInputs appear more slowly with version 4.6.0.
There is also a Grid, which is commented out. If you show it, the virtual scrolling will exhibit a temporary freeze before rendering of the new rows - the user sees the loading skeletons for a second even after they have stopped scrolling.
The DateInput and all related date/time pickers display 1970/1/1 after programmatic Value clearing and subsequent focus.
The behavior was correct until version 4.6.0 inclusive.
<TelerikDateInput @bind-Value="@DatePickerValue"
Width="200px">
</TelerikDateInput>
<TelerikButton OnClick="@( () => DatePickerValue = default )">Clear Value</TelerikButton>
@code {
private DateTime? DatePickerValue { get; set; } = DateTime.Now;
}
Hi,
This is easily viewable in your demos. Using Safari, go to:
https://demos.telerik.com/blazor-ui/dateinput/overview
Try to use keyboard arrows left and right and up/down to change date. It doesn't hold the selected date part.
Works fine in Chrome / Firefox.
Using Telerik Blazor 4.0.1. Previously on 3.5.0, there were no issues. The only other difference is .NET 7.0.
Create a blank Telerik Blazor Server project and use the attached index.razor. In the OnInitialized, there are two lines that set the DateTime. The first one works but the second one results in the TelerikDateInput field showing h:mm AM instead of 12:00 AM.
Am I doing something wrong? If so, what changed from 3.5 to experience this?
Thanks,
Chuck
My users want to paste dates in the date inputs (date pickers in our case). This seems to work in Kendo, but does not work in Blazor, even when the format of the copied data matches the Format of the component.
<p>
Try copying this date which is valid in the current format: 23/03/1998
<br />
then paste it in the date picker and see what happens to the <code>TheDate</code> field
</p>
@TheDate
<br />
<TelerikDateInput @bind-Value="TheDate" Format="dd/MM/yyyy" /> @TheDate.ToString("dd/MM/yyyy")
@code {
DateTime TheDate { get; set; } = new DateTime(2019, 11, 27, 02, 03, 44);
}
---
ADMIN EDIT
Allowing the paste into the DateInput (and by extension date picker,...) would have a lot of cases to control and that is why we have not yet enabled it. If the format is M/d/yyyy, for example, validation for numbers lower or equal to 12 would not be possible when the month is regarded. If the user pastes 8/2/2020 could mean two things - 8th of February 2020 or 2nd of August 2020. This might cause issues as the data that goes to the database might be incorrect and causing the application to misbehave.
That being said, how would you suggest handling the pasting of dates in the component. How would you like from us to handle the format difference of the dates? Please comment below.
---
I would like to be able to configure the auto-tab behavior so that the DateInput only tabs when user type '/' (i.e. disable smart auto-tabbing).
month/day/year
Expected UX: 3/3/2022
Example: https://demos.telerik.com/kendo-ui/dateinput/index
Current UX: 332022
Example: https://demos.telerik.com/blazor-ui/dateinput/overview
See https://docs.telerik.com/blazor-ui/components/dateinput/supported-formats#two-digit-year-formats
I am using a 4-digit format as workaround, but 2-digit formats are quite normal over here. That is why most tools and OS-es have cutoff years. Often a floating cutoff year that is 50 years before the current date. So anything below 70 would be 20xx. Or you can have a cutoff year close to a century ago, because you consider dates past more relevant than future dates.Currently, if the component has DebounceDelay and loses focus before the delay has passed, the Blur event is fired before the ValueChanged event.
This bug extends to DateInput, DatePicker, DateTimePicker, and DateRangePicker
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.
Hello,
Please add an AutoComplete parameter for the DateInput and the date/time pickers, so that browser auto-fill behavior can be controlled or even disabled, if it works incorrectly.