我有一个包含属性type="date"
的文本框。我能够在反码中检索值,但是当我尝试分配值时,会显示占位符"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)">
如您所见,该值已分配。
答案 0 :(得分:2)
我相信这只发生在Chrome中。它要求价值分配在&#34; yyyy-MM-dd&#34;格式。试试你的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");
}
但也许更复杂的东西
答案 1 :(得分:0)
对我来说这是有效的:
txtBirthdate.Text = Convert.ToDateTime(TablaHabitacion.Rows[fila].Cells[6].Text).ToString("yyyy-MM-dd");