我正在尝试格式化转发器中的日期时间(yyyy/MM/dd
),该转发器绑定到ObjectDataSource,如图所示
(这项工作)
<%# ((MyType)Container.DataItem).CreateDateTime.ToString("yyyy/MM/dd")%>
(这不会起作用)
<%# String.Format("{0:yyyy/MM/dd}",((MyType)Container.DataItem).UpdateDateTime)%>
我希望这两件事都有效,因为有时属性UpdateDateTime为null,在这种情况下,第二行代码处理智能。
提前感谢您的帮助。
答案 0 :(得分:3)
我刚刚测试了你认为不起作用的第二行代码,当UpdateDateTime
为空时,假设它的数据类型为datetime?
,它可以正常工作。
如果CreateDateTime
为空,那么您的第一行代码实际上会出错,并且可以像第二行一样修复它:
<%# String.Format("{0:yyyy/MM/dd}",((MyType)Container.DataItem).CreateDateTime) %>
您能否提供有关数据类型和接收错误的更多信息?
另一个解决方案是使用(再次假设DateTime?
数据类型,但您也可以检查DBNull
:
<%# (((MyType)Container.DataItem).UpdateDateTime == null) ?
"No Date Text" :
((MyType)Container.DataItem).UpdateDateTime.Value.ToString("yyyy/MM/dd") %>