@page "/"
@using Syncfusion.Blazor.Calendars
<SfTimePicker TValue="DateTime?" PlaceHolder="00:00" Step=30 Format="HH:mm" Value="@now" Min="@timePickerMinimum" Max="@timePickerMaximum" StrictMode="false">
<TimePickerEvents TValue="DateTime?" ValueChange="(args) => OnFirstChange(args)"></TimePickerEvents>
</SfTimePicker>
<SfTimePicker TValue="DateTime?" PlaceHolder="00:00" Step=30 Format="HH:mm" Value="@secondNow" Min="@now" Max="@timePickerMaximum" StrictMode="false">
<TimePickerEvents TValue="DateTime?" ValueChange="(args) => OnSecondChange(args)"></TimePickerEvents>
</SfTimePicker>
@code {
private DateTime now = DateTime.Now;
private DateTime secondNow = DateTime.Now;
private DateTime timePickerMinimum = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 7, 0, 0); // 7 AM
private DateTime timePickerMaximum = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 18, 0, 0); // 6 PM
public void OnFirstChange(Syncfusion.Blazor.Calendars.ChangeEventArgs<DateTime?> args)
{
if (args.Value == null)
return;
now = (DateTime)args.Value;
// Issue: Line below causes method OnSecondChange to go into endless loop
if (secondNow < now)
{
secondNow = now.AddHours(1);
}
}
public void OnSecondChange(Syncfusion.Blazor.Calendars.ChangeEventArgs<DateTime?> args)
{
if (args.Value == null)
return;
Console.WriteLine("Hello from OnSecondChange!");
secondNow = (DateTime)args.Value;
}
}
|
<SfTimePicker TValue="DateTime" PlaceHolder="00:00" Step=30 Format="HH:mm" @bind-Value="@now" Min="@timePickerMinimum" Max="@timePickerMaximum" StrictMode="false">
<TimePickerEvents TValue="DateTime" ValueChange="(args) => OnFirstChange(args)"></TimePickerEvents>
</SfTimePicker>
<SfTimePicker TValue="DateTime" PlaceHolder="00:00" Step=30 Format="HH:mm" @bind-Value="@secondNow" Min="@now" Max="@timePickerMaximum" StrictMode="false">
<TimePickerEvents TValue="DateTime" ValueChange="(args) => OnSecondChange(args)"></TimePickerEvents>
</SfTimePicker> |