ListView中TextBox中的日期绑定

时间:2014-06-25 04:32:40

标签: c# asp.net listview

我有一个ListView,其中有一个字段,其中有一些日期来自数据库。现在,当我点击“编辑”按钮时,在下一个“编辑页面”中,我想在特定日期字段中显示确切日期。

请参阅以下屏幕截图:

主要观点:

enter image description here

点击后:

enter image description here

我编写了以下代码来绑定日期:

<asp:TextBox runat="server" Text='<%#Bind("FirstVisitDate", "{0:MM/dd/yyyy}") %>' ID="FirstVisitDate" CssClass="form-control" TextMode="date" />

但这不起作用。

2 个答案:

答案 0 :(得分:1)

使用这个而不是你的:

<asp:TextBox runat="server" 
             Text='<%# String.Format("{0:MM/dd/yyyy}", Eval("FirstVisitDate")) %>' 
             ID="FirstVisitDate" CssClass="form-control" TextMode="date" />

如果您仍然收到错误,可以将其转换为DateTime,看看它是否有效:

 Text='<%# String.Format("{0:MM/dd/yyyy}", Convert.ToDateTime(Eval("FirstVisitDate")) %>' 

我们也没有TextMode =&#34; date&#34; ??删除那个。

您也可以尝试这种方式,这在性能方面优于Eval:

Text='<%# String.Format("{0:MM/dd/yyyy}", ((System.Data.DataRowView)Container.DataItem)["FirstVisitDate"] %>' 

如果你想显示日期的格式,你应该使用占位符,如下所示: 你也可以使用type作为下面的日期:

 <asp:TextBox runat="server" placeholder="mm/dd/yyyy" type="date" ... />

答案 1 :(得分:1)

使用TextMode =“date”时,您应始终使用格式yyyy-MM-dd(W3C standard

<asp:TextBox Text='<%# Bind("data", "{0:yyyy-MM-dd}")%>' runat="server" ID="dataTextBox" TextMode="Date" CssClass="form-control"/>