如何在 ASP.NET 中保留日期时间字段为 null

问题描述 投票:0回答:1

我在网格视图中有一个日期时间字段。

如果数据库返回 null、"" 或 1/1/0001,我需要日期字段为 null 或为空。

如何实现这一目标?我的大脑似乎冻结了。

您可以在这里看到我尝试过的内容:

<asp:TemplateField HeaderText="LastEval" ItemStyle-CssClass="gvColumnSmallCss">
  <ItemTemplate >
    <asp:Label ID="lblmyLabel"  Text='<%# Bind("myField","{0:M/d/yyyy}") %>'  runat="server" > </asp:Label>  
                                
    <%--    Text= '  <%#  Eval("myField") !=null ? Convert.ToDateTime(Eval("myField")).ToString("MM/dd/yyyy") : "" %>'
                          --%>
    <%-- Text='<%# Bind("myField","{0:M/d/yyyy}") %>'--%>
   </ItemTemplate>

C#代码:

protected void gv_RowCreated(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DataRow)
  {
    string myField;
    myField= (e.Row.FindControl("lblmyField") as Label).Text;
    DateTime? myField= null;
    _myField = string.IsNullOrEmpty(myField)
                     ? (DateTime?)null 
                     : (DateTime?)DateTime.Parse(myField);
   
    DateTime checkDate = DateTime.Parse("1/1/00001");
    
    if (lastEval == checkDate.ToString() || myField=="")
    {
      (e.Row.FindControl("lblmyField") as Label).Text = "";
    }
  }
}

我也在

RowDataBound
处理程序方法中尝试了类似的方法。

c# asp.net webforms
1个回答
0
投票

我解决如下,以防有人遇到类似问题:

          <asp:Label ID="lblmyLabel" Text= '<%# Convert.ToDateTime(Eval("myField")) !=  Convert.ToDateTime("01/01/0001") ? Convert.ToDateTime(Eval("myField")).ToString("MM/dd/yyyy") : "" %>'  runat="server" > </asp:Label>  
© www.soinside.com 2019 - 2024. All rights reserved.