我在SQL Server数据库中获得了一个DateTime,并希望在Input:
中显示它
<input class="form-control" type="date" name="ExpireDate" id="expiredate" runat="server" value="31/12/2016" style="height: 30px; width: 267px">
&#13;
这是我的C#代码:
Medicine med = new Medicine();
int a = GridView1.SelectedIndex;
med.ID = int.Parse(GridView1.DataKeys[a].Value.ToString());
DataProcess bal = new DataProcess(); DataTable dt = bal.getInfo(med)
expiredate.Value = Convert.ToDateTime(dt.Rows[0][5]).ToString("dd/MM/yyyy");
我在最后一行之后放了一个断点,我看到dt.Rows[0][5]
得到了&#34; {2017/5/31 0:00:00}&#34;并且expiredate.Value
得到了&#34; 31/05 / 2017&#34;但它只是在网页中没有显示任何错误。并且这个DateTime记录通过完全相同的Input插入到DataBase中,当我从DataBase中取出时,我只是不知道如何在同一个Input中显示它。
第一次问,非常感谢!
答案 0 :(得分:3)
这里的问题是html日期输入的格式和asp.net DateTime不匹配。 Html date
输入显示mm/dd/yyyy
,但背后的格式为yyyy-MM-dd
。
尝试使用expiredate.Value = Convert.ToDateTime(dt.Rows[0][5]).ToString("yyyy-MM-dd");
希望这有帮助。
答案 1 :(得分:0)
您似乎在日期类型的输入字段中推送日期。但这不起作用。因为html不支持原始日期格式的默认值。因此,您必须使用javascript
自定义日期字段。但是,如果你从Razor
Html助手那里得到任何帮助,那么你就可以这样做,而不是像.NET framwork
那样。您可以轻松地从以前的答案jQuery datepicker获取帮助,在这里您可以通过javascript设置默认日期,这将显示在您的输入字段中。