在aspx页面中,我绑定了这样的标签:
<asp:TemplateField HeaderText="Date of Joining">
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# Eval("date_of_joining") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Paid Priviledge Date">
<ItemTemplate>
<asp:Label ID="Label8" runat="server"
Text='<%# Eval("paid_priviledge_date") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
在后面的代码中我绑定网格视图如下:(给出最小代码)
GridView1.DataSource = dt2;
GridView1.DataBind();
但gridview列显示的日期如下:
4/12/2011 12:00:00 AM
4/4/2011 12:00:00 AM
请建议如何删除时间戳部分并仅显示日期部分。
我知道如何使用ToString和SubString进行格式化。但我无法在gridview中执行此操作。
答案 0 :(得分:25)
您可以为eval语句指定格式字符串:
Eval("date_of_joining", "{0:dd/MM/yyyy}")
答案 1 :(得分:11)
在您的代码隐藏中创建一个FormatDate
方法,并从您的gridview中调用它
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
http://www.csharp-examples.net/string-format-datetime/
这部分将放在你的代码背后
private object FormatDate(DateTime input)
{
return String.Format("{0:MM/dd/yy}", input);
}
这一位将在你的标记中出现
<asp:TemplateField HeaderText="Date of Joining">
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# FormatDate(Eval("date_of_joining")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Paid Priviledge Date">
<ItemTemplate>
<asp:Label ID="Label8" runat="server"
Text='<%# FormatDate(Eval("paid_priviledge_date")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
这就是我所说的问题的D.R.Y.方法。如果您需要以任何方式修改格式。你可以简单地编辑方法背后的代码,它会降低对你所有标记的甜蜜爱情。
答案 2 :(得分:7)
使用"{0:d}"
作为短日期格式。
尝试
Text='<%# Eval("paid_priviledge_date","{0:d}") %>'
和
Text='<%# Eval("date_of_joining", "{0:d}") %>'
答案 3 :(得分:1)
您可以在绑定字段中使用DataFormatString,同样可以设置如下:
<asp:Label ID="Label8" runat="server" Text='<%# Eval("paid_priviledge_date","{0:d}") %>'/>
答案 4 :(得分:0)
Text='<%# (Convert.ToDateTime((Eval("date_of_joining")))).ToShortDateString() %>'
这是我发现的最简单的方式。