0

我在有界字段中有一个日期,如下所示:

<asp:BoundField DataField="closeDate" HeaderText="End Date"  SortExpression="closeDate" htmlencode="false" dataformatstring="{0:d}" >
  <ItemStyle CssClass="georgeTest"></ItemStyle>
  <HeaderStyle CssClass="georgeTest"> </HeaderStyle> 
</asp:BoundField>

我正在尝试以这种方式对其进行格式化:“12/18/2012”的dataformatstring属性使用上面显示的两种格式,dataformatstring="{0:dd/MM/yyyy}}"它们都一直给我相同的值“1/1/0001”,我不能弄清楚为什么会这样。

我在 MS Visual Studio 2010 和 ASP.NET 4.0 中工作。

该字段属于DateTime类型。

4

1 回答 1

1

作为参考,我已经发布了我评论中的链接内容作为答案:

如何使用 ASP.NET 2.0 在 GridView 中设置日期格式(使用 HtmlEncode 属性)

由 Peter Kellner 在 .Net 2.0、ASP.NET 2.0 中发布 (又名,DataFormatString="{0:M-dd-yyyy}" 问题)

一个非常普遍的愿望是设置 GridView 的一列以仅显示 DateTime 类型的月、日和年。问题是默认情况下,BoundField 属性的 HtmlEncode 属性(

<columns>
  <asp:BoundField headertext="CreationDate" dataformatstring="{0:M-dd-yyyy}" 
       datafield="CreationDate"  />
</columns>

您有两种选择可以按照您的预期进行这项工作。第一种选择是简单地将 HtmlEncode 设置为 false,如下所示:

<asp:GridView id="GridView1" runat="server" >
<columns>
  <asp:BoundField headertext="CreationDate" dataformatstring="{0:M-dd-yyyy}" 
       datafield="CreationDate"  HtmlEncode="false" />
</columns>

第二种选择是使列成为模板,并直接在标签或文本字段中简单地设置格式字符串,如下所示。

<asp:GridView id="GridView3" runat="server" >
 <columns>
  <asp:TemplateField headertext="CreationDate" >
   <edititemtemplate>
    <asp:Label id="Label1" runat="server" Label.Text='<%# Eval("CreationDate", "{0:M-dd-yyyy}") %>'>
    </asp:Label>
   </edititemtemplate>
   <itemtemplate>
    <asp:Label id="Label1" runat="server" Label.Text='<%# Bind("CreationDate", "{0:M-dd-yyyy}") %>'>;
    </asp:Label>
   </itemtemplate>
  </asp:TemplateField>
 </columns>
</asp>
于 2012-12-20T16:06:11.357 回答