这是我在GridView中的绑定字段:
<asp:BoundField HeaderText="Date On Hold" DataField="HoldOn" DataFormatString="{0:MM-dd-yyyy}" />
如果数据库中的日期为NULL,则显示“01-01-0001”。在这种情况下,我不想展示任何东西。
我该怎么做?
答案 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>