如何在绑定的Gridview行中清除/删除默认的DateTime NULL值?

时间:2014-04-11 13:46:06

标签: asp.net gridview date-formatting

这是我在GridView中的绑定字段:

<asp:BoundField HeaderText="Date On Hold" DataField="HoldOn" DataFormatString="{0:MM-dd-yyyy}"  />

如果数据库中的日期为NULL,则显示“01-01-0001”。在这种情况下,我不想展示任何东西。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以在Gridview's RowDataBound事件中进行健全检查。像这样:

private GridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        YourObject dataObj = e.Row.DataItem as YourObj;
        Label lbl = e.Row.FindControl("lblDate") as Label;
        if(lbl != null)
        {
             DateTime myDate;
             if (DateTime.TryParse(dataObj["HoldOn"].ToString(),out myDate))
                lbl.Text = myDate.ToString("MM-dd-yyyy");
             else 
                lbl.Text = "";
        }
    }
}

答案 1 :(得分:1)

如果不这样做,你可以用简短的手来尝试使用TemplateField:

<asp:TemplateField HeaderText="Date On Hold">
    <ItemTemplate>
        <%# (DateTime)Eval("HoldOn") == DateTime.MinValue ? string.Empty : string.Format("{0:MM-dd-yyyy}", (DateTime)Eval("HoldOn")) %>
    </ItemTemplate>
</asp:TemplateField>