0

我有一个表单视图,其中有一个文本字段,该文本字段绑定到一个 2 路绑定控件,代码如下:

<td class="table-4">
   <asp:TextBox ID="txtDOB" runat="server" Text='<%# BindItem.DOB%>' TextMode="Date" Width="200px"</asp:TextBox>
</td>

我使用 TextMode 作为 Date 这将导致在浏览器中显示日历。

在模型实体类中,我将 DOB 定义为:

<Display(Name:="Date of Birth"), DataType(DataType.DateTime), DisplayFormat(ApplyFormatInEditMode:=True, DataFormatString:="{0:yyyy-MM-dd}")> _
Public Property DOB() As Date?

问题: 当使用谷歌浏览器或 Opera 时,它们在处理和兼容 HTML5 元素方面表现出色,txtDOB 字段不显示从数据库绑定的日期数据值,而是显示:1-在 Chrome 中,显示 yyyy -mm-dd,这是我在 Opera 中使用的日期格式 2-,txtbox 为空。

单击该字段时,两种浏览器都会显示日历。

为什么日历打开时文本字段中未显示的有界日期数据也未标记/选择?

注意:在 IE 中,我将其视为带有从数据库绑定的日期值的 normat txtField,当然没有日历视图,因为 IE 版本 9 不支持完全 HTML5,导致无法理解标签(TextMode="Date")

使用的技术: - VS 2012 - Entity Framework 4.5

4

1 回答 1

0

您必须将格式设置为 ISO 日期格式:

<EditItemTemplate>
  <asp:TextBox ... Text='<%# Bind("BirthDate","{0:yyyy-MM-dd}") %>' TextMode="Date"></asp:TextBox>
</EditItemTemplate>
于 2013-08-29T09:32:18.780 回答