由于blazor不支持停止事件传播,我需要对type =“date”和onchange事件的输入进行单向绑定。像这样的东西:
<input type="date" value="@_endDate" format-value="yyyy-MM-dd" onchange="@EndDate_change"/>
但这不起作用。页面包含datePicker但没有值。
“_endDate”的类型为DateTime。
如果我使用双向绑定,那么一切正常。
<input type="date" bind="@_endDate" format-value="yyyy-MM-dd"/>
知道为什么第一个“输入”不起作用?是否有任何错误或者这是blazor中的错误?对于纯文本单向绑定与onchange事件工作没有问题。
Edit1:_endDate包含当前日期,并设置为DateTime.Now
protected void EndDate_change(UIChangeEventArgs endDateEvent)
{
_endDate = Convert.ToDateTime(endDateEvent.Value);
StateHasChanged();
}
这应该工作......错误可能在你的代码中。如果你认为你的代码没问题,那么在github上发布一个问题。
无需在EndDate_change方法中调用StateHasChanged,因为它会自动调用。
不确定为什么不能使用bind属性...但是,您可以在表单组件中使用InputDate组件来停止事件传播(提交)。
希望这可以帮助...