【问题标题】:how to show value of textbox type=date asp.net如何显示文本框类型=日期 asp.net 的值
【发布时间】:2014-06-25 11:38:24
【问题描述】:

我有一个属性为type="date" 的文本框。我可以在 backcode 中检索值,但是当我尝试分配一个值时,会显示占位符 "mm/dd/yyyy"

当我查看标记时,预期值就在那里 - "value='01/01/1991'"。我认为这与 JavaScript 覆盖值有关。

关于如何解决这个问题的任何建议?

编辑:抱歉,忘记包含标记和代码

所以我的标记是

<asp:TextBox ID="txtBirthdate" runat="server" class="form-control input-sm" type="date" onkeypress="handleEnter(event)" />

而c#是

txtBirthdate.Text = usr.BirthDate.ToString("MM/dd/yyyy");

生成的标记是

<input name="ctl00$ctl00$ctl00$ctl00$Body$Body$Body$Body$txtBirthdate" value="01/20/1991" id="ctl00_ctl00_ctl00_ctl00_Body_Body_Body_Body_txtBirthdate" class="form-control input-sm" type="date" onkeypress="handleEnter(event)">

如您所见,值已分配。

【问题讨论】:

  • 显示一些你尝试过的 .aspx 和 .cs
  • 请分享一些html代码,否则JSFiddle会更好

标签: javascript html asp.net textbox


【解决方案1】:

我相信这只发生在 Chrome 中。它要求赋值为“yyyy-MM-dd”格式。在你的 C# 中尝试

txtBirthdate.Text = usr.BirthDate.ToString("yyyy-MM-dd");

这应该会显示正确的值(并且不会影响显示的格式)。

如果将在其他浏览器中以这种格式显示。您可能想做一些浏览器检测,例如

if (Request.Browser.Browser == "Chrome")
{
    txtBirthdate.Text = usr.BirthDate.ToString("yyyy-MM-dd");
} else {
    txtBirthdate.Text = usr.BirthDate.ToString("MM/dd/yyyy");
}

但也许更复杂的东西

【讨论】:

    【解决方案2】:

    对我来说这很有效:

    txtBirthdate.Text = Convert.ToDateTime(TablaHabitacion.Rows[fila].Cells[6].Text).ToString("yyyy-MM-dd");
    

    【讨论】:

    • Stackoverflow 是英文网站,请不要使用英文以外的语言
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2021-06-05
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多