asp.net 将值设置为输入类型=代码隐藏中的“日期”

hl0ma9xz  于 2023-02-20  发布在  .NET
关注(0)|答案(5)|浏览(143)

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

    • 美国邮政:**
<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");
    • 美国邮政:**
<input type="date"  runat="server" id="date_datumPrispetja" value="dd. MM. yyyy"/>
<br />
<input type="datetime" runat="server" id="hi" value="dd. MM. yyyy" />
    • 结果:**

mklgxw1f

mklgxw1f1#

我想应该是工作,你把这个代码放在哪里了:

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");
    }

然后它运行良好。

rqdpfwrv

rqdpfwrv2#

这对我很有效。

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

w51jfk4q3#

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 *(对所有浏览器为真),属性 * value * 为空(对Safari不为真)。
我的解决方案是一些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。

vybvopom

vybvopom4#

这对我很有效:

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

sulc1iza5#

在这种情况下,日期字符串的格式应为“yyyy-MM-dd”,如下所示:date.Value = DateTime.Now.ToString("yyyy-MM-dd");

相关问题