GridView TemplateField转换为DateTime时所有日期行出现空白问题
问题根因
你的三元表达式逻辑写反了:原代码Eval("assigned_date") != null ? "" : Convert.ToDateTime(Eval("assigned_date")).ToString("MM/dd/yyyy")的执行逻辑是当assigned_date有值(不为null)时返回空字符串,为null时才执行日期转换,和你预期的「非空才转格式、空值返回空」的需求完全相反,这就是所有有效日期都显示空白的直接原因。
修正后的绑定代码
<asp:Label ID="Label13" runat="server" Text='<%# Eval("assigned_date") != null ? Convert.ToDateTime(Eval("assigned_date")).ToString("MM/dd/yyyy") : "" %>'></asp:Label>
兼容数据库空值的优化写法
如果assigned_date字段来源于数据库,空值通常为DBNull类型而非C#原生null,使用Convert.IsDBNull判断兼容性更强,可避免空值判断失效的问题:
<asp:Label ID="Label13" runat="server" Text='<%# !Convert.IsDBNull(Eval("assigned_date")) ? Convert.ToDateTime(Eval("assigned_date")).ToString("MM/dd/yyyy") : "" %>'></asp:Label>
内容的提问来源于stack exchange,提问作者A.Mac
相关产品推荐
相关产品推荐

