【发布时间】:2019-09-11 17:51:54
【问题描述】:
由于 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 事件没有问题。
编辑1: _endDate 包含当前日期,设置为 DateTime.Now
protected void EndDate_change(UIChangeEventArgs endDateEvent)
{
_endDate = Convert.ToDateTime(endDateEvent.Value);
StateHasChanged();
}
【问题讨论】:
-
如何设置
_endDate,EndDate_change有什么作用?如果你check the docs绑定就相当于在change事件中设置新值。如果你想显示它,你仍然必须将_endDate设置为 something -
请看Edit1。我将其添加到问题中。
-
我无法复制这个。日期显示(Chrome、Firefox、edge),但事件不是从日期输入触发的。最新的 Blazor,客户端。
-
您是否尝试从 javascript (datePicker) 更改日期值?那么,也许,你应该需要interop