ASP.NET中TextMode=Date的TextBox绑定SQL日期显示异常问题
解决ASP.NET TextBox(TextMode=Date)绑定SQL日期显示问题
问题原因
TextMode设为Date的ASP.NET TextBox,最终会渲染为HTML5的<input type="date">控件,该控件仅接受yyyy-MM-dd(ISO 8601标准格式)的字符串作为有效值。你后台用dd-MM-yyyy格式赋值,不符合控件的格式要求,导致无法正确解析并显示日期。
解决方案
直接修改后台赋值代码,将日期格式改为yyyy-MM-dd:
txtDate.Text = Convert.ToDateTime(dt.Rows[0]["Date"]).ToString("yyyy-MM-dd");
额外注意事项
- 如果SQL查询结果中的
Date字段可能为DBNull,需要先做空值判断,避免转换报错:if (!dt.Rows[0].IsNull("Date")) { txtDate.Text = Convert.ToDateTime(dt.Rows[0]["Date"]).ToString("yyyy-MM-dd"); } else { txtDate.Text = string.Empty; } - 前端显示的日期格式会根据用户浏览器的区域设置自动调整(比如显示为
dd/mm/yyyy或mm/dd/yyyy),但后台传递的值必须严格遵循yyyy-MM-dd格式。
内容的提问来源于stack exchange,提问作者Lima
相关产品推荐
相关产品推荐

