#datepicker #default-value #ant-design-blazor
Вопрос:
В настоящее время я работаю на стороне сервера Blazor. У меня есть проблемы с тем, что при выборе Эффективного года до 2022 года значение даты начала и даты окончания может измениться на 2022-04-19, но когда я открываю выбор выбора даты, он показывает апрель 2021 года. выбор выбора даты СРАБАТЫВАЕТ, когда я выбираю любой день из выбора, а затем снова меняю год. Это странно, кто-нибудь знает почему? вот мой … блейзор
@inherits AppComponentBase
<Modal @ref="ModalRef" Title="@Title" Visible="Visible" Draggable="true"
OkText="@OK" OnOk="OkButtonOnClick" OnCancel="CancelButtonOnClick"
MaskClosable="false" Keyboard="false" Width="800">
<Form @ref="FormRef" Model="@InputModel"
Loading="Loading" ValidateOnChange="true"
OnFinish="OnFinish" OnFinishFailed="OnFinishFailed"
LabelColSpan="6" WrapperColSpan="18">
<Validator>
<FluentValidationValidator />
</Validator>
<ChildContent>
<FormItem Label="Effective Year" Required>
<Select @bind-Value="@context.EffectiveYear"
DefaultValue="@DefaultEffectiveYear"
TItemValue="int"
TItem="int"
OnSelectedItemChanged="SelectedItemChangedHandler"
Style="width: 200px;">
<SelectOptions>
@foreach (var item in EffectiveYearsDropdown)
{
<SelectOption TItemValue="int" TItem="int"
Value=@item Label=@item.ToString() />
}
</SelectOptions>
</Select>
</FormItem>
<FormItem Class="input-uppercase" Label="Duration" Required>
<AntDesign.InputNumber @bind-Value="@context.Duration"
TValue="int"
Max="99"
Style="width: 200px;">
</AntDesign.InputNumber>
</FormItem>
<FormItem Class="input-uppercase" Label="Start Date" Required>
<AntDesign.Col Span="8">
<DatePicker @bind-Value="@context.StartDate"
Picker="@DatePickerType.Date"
DefaultValue="@context.StartDate"
Format="@Constants.DATE_FORMAT"
Style="width: 200px;" />
</AntDesign.Col>
</FormItem>
<FormItem Class="input-uppercase" Label="End Date" Required>
<AntDesign.Col Span="8">
<DatePicker @bind-Value="@context.EndDate"
Picker="@DatePickerType.Date"
DefaultValue="@context.StartDate"
Format="@Constants.DATE_FORMAT"
Style="width: 200px;" />
</AntDesign.Col>
</FormItem>
<FormItem Class="input-uppercase" Label="Remarks" Required>
<Input @bind-Value="@context.Remarks" MaxLength="60" />
</FormItem>
</ChildContent>
</Form>
вот мой .blazor.cs
protected override void OnInitialized()
{
for (int i = DefaultEffectiveYear; i <= DefaultEffectiveYear Constants.DROPDOWN_YEARS; i )
{
EffectiveYearsDropdown.Add(i);
}
}
private void SelectedItemChangedHandler(int year)
{
if (year != DateTime.Now.Year)
{
//var newDate = new DateTime(year, 1, 1);
var newDate = new DateTime(year, DateTime.Now.Month, DateTime.Now.Day);
InputModel.StartDate = newDate;
InputModel.EndDate = newDate;
//DefaultStartDate = newDate;
}
else
{
InputModel.StartDate = DateTime.Now;
InputModel.EndDate = DateTime.Now;
}
StateHasChanged();
}