asp.net ListView中TextBox的日期绑定

fnvucqvd  于 2023-05-30  发布在  .NET
关注(0)|答案(2)|浏览(167)

我有一个ListView,在它有一个字段与一些日期来自数据库。现在,当我单击编辑按钮时,在下一个编辑页面中,我希望在特定日期字段中显示确切的日期。
请参见以下屏幕截图:
主视图:

点击后:

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

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

但这行不通。

vsaztqbk

vsaztqbk1#

用这个代替你的:

<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=“date”?把那个也拿掉。
您也可以尝试这种方式,在性能方面比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" ... />
np8igboo

np8igboo2#

当使用TextMode=“date”时,您应该始终使用yyyy-MM-dd格式(W3C标准)

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

相关问题