我想从ASP.NET Web应用程序中的C#codebehind为我的HTML标记input type="date"
赋值。加载页面后,该值不可见,但在chrome dev工具中,我可以看到值:
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元素?
编辑:
比较datetime
和date
输入类型。
的 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" />
结果:
答案 0 :(得分:6)
我认为它应该是有用的,你把这段代码放在哪里:
string date = myDate.ToString("dd. MM. yyyy"); //value of date: "09. 04. 2017";
date_datumPrispetja.Value = date;
的Page_Load()?
我的测试代码如下:
protected void Page_Load(object sender, EventArgs e)
{
hi.Value = DateTime.Now.ToString("yyyy-MM-dd");
}
然后它运作良好。
答案 1 :(得分:1)
这对我有用。
TextBox.Text = Convert.ToDateTime('01-01-2020').Date.ToString("yyyy-MM-dd");
答案 2 :(得分:0)
移动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),而属性 value 为空(对于Safari不适用)。
对于这种混乱,我的解决方法是使用一些javascript:
$(function () {
var datefields = $('input[type=date]')
for (i = 0; i < datefields.length; i++) {
var defaultVal = datefields[i].defaultValue;
var val = datefields[i].value;
if (defaultVal.length > 0 && val.length == 0) {
var parsed = Date.parse(defaultVal);
var d = new Date(parsed);
if (isNaN(d)) {
var darr = defaultVal.split(".");
if (darr.length == 3) {
d = new Date(darr[2], darr[1] - 1, darr[0]);
}
}
var y = d.getFullYear();
var m = d.getMonth()+1;
var d = d.getDay();
var s = y.toString() + '-' + m.toString().padStart(2,0) + '-' + d.toString().padStart(2,0);
datefields[i].value = s;
}
}
});
请注意
Date.parse("27.04.2017")
可用于Chromium,但不适用于Firefox。
答案 3 :(得分:0)
这对我有用:
txtFechaOtorgamiento.Text = Format(servicio.FechaOtorgamiento, "yyyy-MM-dd");