繁体   English   中英

从代码隐藏中将值设置为 input type="date"

[英]Set value to input type=“date” from codebehind

我想从 ASP.NET Web 应用程序中的 C# 代码隐藏为我的 HTML 标记input type="date"赋值。 页面加载后,该值不可见,但在 chrome 开发工具中我可以看到该值:

在此处输入图片说明

ASPX:

<input type="date" runat="server" id="date_datumPrispetja" value="dd. MM. yyyy" />

代码隐藏:

string date = myDate.ToString("dd. MM. yyyy"); //value of date: "09. 04. 2017";
date_datumPrispetja.Value = date;

这甚至有可能将代码隐藏中的值分配给这个 HTML5 元素吗?


编辑:

比较datetimedate输入类型。 C#:

date_datumPrispetja.Value = DateTime.Now.ToString("dd. MM. yyyy");
hi.Value = DateTime.Now.ToString("dd. MM. yyyy");

ASPX:

<input type="date"  runat="server" id="date_datumPrispetja" value="dd. MM. yyyy"/>
<br />
<input type="datetime" runat="server" id="hi" value="dd. MM. yyyy" />

结果:

在此处输入图片说明

我认为它应该可以工作,你把这段代码放在哪里:

string date = myDate.ToString("dd. MM. yyyy"); //value of date: "09. 04. 2017";
date_datumPrispetja.Value = date;

页面加载()?

我的测试代码如下:

protected void Page_Load(object sender, EventArgs e)
    {
        hi.Value = DateTime.Now.ToString("yyyy-MM-dd");
    }

然后它运作良好。

这对我有用。

TextBox.Text = Convert.ToDateTime('01-01-2020').Date.ToString("yyyy-MM-dd");

Mobile Safari、Firefox 和 Chromium 仅接受格式中的日期值

<input type="date" value="2017-04-27">

并将以本地化格式打印日期。 如果他们获得本地化格式作为输入(例如“27.04.2017”),他们只会打印占位符。

但是 Safari 接受

<input type="date" value="27.04.2017">

另一方面,如果 Safari 获取输入格式“2017-04-27”,它将以非本地化形式打印此值。

在浏览器的 DOM 中,输入值存储在属性defaultValue (对于所有浏览器为 true)中,并且属性值为空(对于 Safari 不为 true)。

我对这种混淆的解决方法是一些 javascript:

 $(function () { var datefields = $('.TTMMJJ') for (i = 0; i < datefields.length; i++) { datefields[i].type = "date"; var defaultVal = datefields[i].defaultValue; var val = datefields[i].value; if (defaultVal.length > 0 && val.length == 0) { var darr = defaultVal.split("."); if (darr.length == 3) { var year = darr[2]; var month = darr[1]; var day = darr[0]; if (year.length == 2) { year = "20" + year; } var s = year + '-' + month.padStart(2,0) + '-' + day.padStart(2,0); datefields[i].value = s; } } } });

注意

Date.parse("27.04.2017") 

适用于 Chromium,但不适用于 Firefox。

这对我有用:

txtFechaOtorgamiento.Text = Format(servicio.FechaOtorgamiento, "yyyy-MM-dd");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM