1

通常,在 .ascx 内的 foreach 上,我可以使用以下命令访问可为空的 DateTime:

<%=item.DataModifica.Value.ToShortDateString() %>

但如果我尝试使用中继器:

<%#Eval("DataModifica.Value.ToShortDateString()").ToString()%>

我得到一个例外

System.DateTime' 不包含名为 'Value' 的属性

我哪里错了?

4

3 回答 3

3

@Markzzz 提供了出色的解决方案。我假设您DataModifica是一个可以为空的字段,这就是您检查它的原因Value。当有一个null值时,它不能被.ToString()方法转换。您必须使用Convert类的方法或检查您的字段是否有空值并相应地执行。这是一个例子

<%# (Eval("DataModifica") != null ? Eval("DataModifica","{0:dd-MM-yyyy}") : "Not Available") %>
于 2013-06-24T06:24:17.007 回答
1

我建议你像这样更改代码:

<%# Convert.ToDateTime(Eval("DataModifica")).ToShortDateString()%>
于 2013-06-21T08:31:07.353 回答
0

使用日期时间类型?你可以这样做:

(Eval("DateCreate") != null && Eval("DateCreate") is DateTime) ?DateTime.Parse(Eval("DateCreate").ToString()).ToString("MM/dd/yyyy") : "立即"

于 2014-10-21T08:01:13.200 回答