修改日期格式或字符串长度的标签ItemTemplate
本文关键字:标签 ItemTemplate 字符串 日期 格式 修改 | 更新日期: 2023-09-27 18:10:57
是否有一种方法来格式化文本我从我的数据集(这是一个日期类型)不显示时间。
我有它在我的sql查询格式日期不显示时间,但后来我不得不把它变成一个字符串,我需要的数据类型仍然是一个日期。
所以我不能再使用这个了
CONVERT(varchar(15),em.endDate,111) as endDate -> 2001/05/05
这个不行
CONVERT(Date,em.endDate,111) --> Output: Output: 5/5/2001 12:00:00 AM
这是我的模板。
<asp:TemplateField HeaderText="endDate" SortExpression="endDate">
<ItemTemplate>
<asp:Label ID="lblEndDate" runat="server" Text='<%# Bind("endDate") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
是否有办法修改模板,以削减日期的时间?
是的,您可以使用ToShortDateString
:
Text='<%# ((DateTime)Eval("endDate")).ToShortDateString() %>'
或
Text='<%#Eval("endDate","{0:d}")%>'
标准日期和时间格式字符串
或使用RowDataBound
(假设GridView
,也适用于其他web绑定控件,如中继器与ItemDataBound
事件):
protected void Gridview1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRow row = ((DataRowView)e.Row.DataItem).Row; // you might use a different datasource, use the debugger if you are unsure
Label lblEndDate = (Label)e.Row.FindControl("lblEndDate");
lblEndDate.Text = row.Field<DateTime>("endDate").ToString("d");
}
}
<asp:TemplateField SortExpression="MyDate" HeaderText="MyDate">
<ItemTemplate>
<asp:Label ID="lblMyDate" runat="server"
Text='<%# Eval("MyDate", "{0:dd/MM/yyyy}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
可以使用
<asp:Label ID="lblEndDate" runat="server" Text='<%#Eval("EndDate","{0: dd- MMM - yyyy}")%>' />
您可以将字符串解析为DateTime,并使用ToString
方法将其格式化,而不包含时间。
根据你想要的格式,你可以这样做
myDateTime.ToString("d MMM yyy");