为了账号安全,请及时绑定邮箱和手机立即绑定

Blazor 以一种方式将值绑定到“输入日期”

Blazor 以一种方式将值绑定到“输入日期”

C#
慕的地6264312 2022-12-24 12:54:33
type="date"由于 Blazor 不支持停止事件传播,因此我需要使用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.Nowprotected void EndDate_change(UIChangeEventArgs endDateEvent){    _endDate = Convert.ToDateTime(endDateEvent.Value);    StateHasChanged();}
查看完整描述

5 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

保持两者@onchange=和一种方式value=使用这个

value="@someDate.ToString("yyyy-MM-dd")"

诀窍是将格式设置为字符串yyyy-MM-dd以从值中获取一种绑定方式。不同格式或仅使用DateTime对象无法在日期选择器中显示日期。

例子:

<input type="date" value="@knowledge.ActualShortTermDate.ToString("yyyy-MM-dd")" @onchange="@(async (e) => await updateDate(DateTime.Parse(e.Value.ToString())))" />


查看完整回答
反对 回复 2022-12-24
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

由于在 blazor 中 @bind-Value 和 @onchange 不能共存,因为现在这里是最好的解决方法


<InputDate type="date" @bind-Value="@_endDate"/>

@code {

 private DateTime endDate;

public DateTime _endDate

{

    get { return endDate; }

    set

    {

        endDate = value;

        //Do Other tasks ......

        // Eg updateSomething();

    }

}

}


查看完整回答
反对 回复 2022-12-24
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

它对我有用


        <div class="col-4 border border-primary border-0 text-left">

            <InputDate id="expenseedate" class="form-control form-control-sm col-4" format-value="yyyy-MM-dd" @bind-Value="@_endDate" @oninput="@ResetError" placeholder="Enter Expense end Date"></InputDate>

        </div>


查看完整回答
反对 回复 2022-12-24
?
桃花长相依

TA贡献1860条经验 获得超8个赞

使用时间的 blazor 元素:

<InputDate Type="InputDateType.Time" class="form-eliment jds-d-inline-block jds-max-width150" @bind-Value="model.RunAutomaticallyAt"> </InputDate>



查看完整回答
反对 回复 2022-12-24
?
慕森卡

TA贡献1806条经验 获得超8个赞

自 .NET Core 3.1 Preview 2 起,Blazor 应用程序支持防止事件的默认操作和停止事件传播,请 在此处查看此链接


查看完整回答
反对 回复 2022-12-24
  • 5 回答
  • 0 关注
  • 416 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号