C# 如何在asp.net中默认今天的日期

C# 如何在asp.net中默认今天的日期,c#,asp.net,gridview,C#,Asp.net,Gridview,我在gridview中有一个标签,希望将DT的值默认为今天的日期。我想在gridview 2015-02-17中这样展示。以下是gridview中标签的aspx <asp:TemplateField ItemStyle-Width="150px" HeaderText="Date"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("DT")%>'

我在gridview中有一个标签,希望将DT的值默认为今天的日期。我想在gridview 2015-02-17中这样展示。以下是gridview中标签的aspx

<asp:TemplateField ItemStyle-Width="150px" HeaderText="Date">
       <ItemTemplate>
   <asp:Label ID="Label1" runat="server" Text='<%# Eval("DT")%>'></asp:Label>
   </ItemTemplate>
     </asp:TemplateField>

将sql命令更改为

string strQuery = "select ID, Name, Location, getdate() as  DT from myTable ";

DT将是当前日期时间。

为什么要去数据库服务器查找今天的日期

<div ID="Label1"><%=DateTime.Now.Date%></div>
如果该值可以为空,则:

从myTable中选择ID、Name、Location、COALESCEDT、getdate AS DT

您可以使用ISNULL或COALESCE(如果为NULL):

如果只想显示日期部分,请使用

Text='<%# Bind("DT", "{0:yyyy-MM-dd}") %>'
或者强制使用当前区域性的日期格式

Text='<%# Bind("DT", "{0:d}") %>'

另一个不必更改查询并假设要用今天的日期替换空日期的选项:

Text='<%# string.Format(
              "{0:yyyy-MM-dd}",
              string.IsNullOrEmpty(Eval("DT").ToString()) ?
                  DateTime.Today : Eval("DT")) %>'

您是否意识到您正在使用的许多技术已经完全过时?你不应该学习它们。@usr我不会说它们已经过时了……所以你想使用DateTime。今天如果日期为空?@DavidG他似乎是学习这些东西的初学者。2015年不应该有人学习到这一点。@usr这可能是强迫他做的事情,处理遗留代码是相当普遍的,并不是每个人都能奢侈地使用MVC、EF或任何其他性感的东西!也许DT可以有日期或为空?不要忘记.toString YYY MM dd;以确定他想要的方式。我可能搞砸了哪个是大写的,我总是不查就忘了。DateTime.Now DateTime。今天,我还认为OP只想在DB值为null时使用它,比如将DT的值默认为今天的日期。Bill,它不是显示日期值,而是显示:在我运行之后it@moe很抱歉不确定asp.net控件。我很少使用它们。编辑使其成为一个普通的DIV,并剥离时间。您可以按自己的喜好设置格式。@Chirag Chirag:请停止编辑我的答案,这是一个有效的解决方案,显然有优势。如果您想发布自己的答案,并详细说明为什么ISNULL优于COALESCE,那么这将为一般社区提供更好的参考来源。如果我的回答当然不正确,请随时发表评论,以便我采取适当的行动。但请注意,这是我想发布的答案。
Text='<%# Bind("DT", "{0:d}") %>'
Text='<%# string.Format(
              "{0:yyyy-MM-dd}",
              string.IsNullOrEmpty(Eval("DT").ToString()) ?
                  DateTime.Today : Eval("DT")) %>'