首页 > 解决方案 > 将 TemplateField 转换为 DateTime - 空白行

问题描述

即使单元格中存在日期,所有日期都将变为空。这是来自 gridview 模板字段。我正在尝试转换那些不为空的单元格,但它们都是空的。

 asp:Label ID="Label13" runat="server" Text='<%# Eval("assigned_date") != null ? "" : Convert.ToDateTime(Eval("assigned_date")).ToString("MM/dd/yyyy")  %>'></asp:Label>

标签: c#asp.netdategridviewtemplatefield

解决方案


最好在后面的代码上创建一个函数并调用该函数 - 避免内联Eval。所以代码将如下:

<asp:Label ID="Label13" runat="server" Text='<%# getDateTimeIfExist(Container.DataItem)%>'></asp:Label>

和后面的代码

protected string getDateTimeIfExist(object oItem)
{
        var DateTimeToRender = DataBinder.Eval(oItem, "assigned_date") as DateTime?;

        if (DateTimeToRender != null)
            return DateTimeToRender.GetValueOrDefault().ToString("MM/dd/yyyy");
        else
            return string.Empty;
}

推荐阅读