2015-07-02 70 views
1

我在显示日期的数据网格中有一列,如2014-04-21 00:00:00,但我想像2014-04-21那样显示它。数据网格中的列可以格式化为ToShortDateString吗?

<asp:DataGrid runat="server" CssClass="tblResults" Width="30%" OnItemDataBound="dgList_ItemCreated" AllowSorting="true" OnSortCommand="dgList_Sort" ID="dgList" DataKeyField="ID" AutoGenerateColumns="false"> 
       <HeaderStyle CssClass="tblResultsHeader" /> 
       <AlternatingItemStyle BackColor="#EEEEEE" /> 
       <Columns> 
        <asp:HyperLinkColumn ItemStyle-CssClass="loading" DataNavigateUrlFormatString="PublicHolidays.aspx?DateID={0}" DataNavigateUrlField="ID" DataTextField="BankHol" HeaderText="Bank Holidays" SortExpression="BankHol" ></asp:HyperLinkColumn> 
        <asp:BoundColumn DataField="IsActive" HeaderText="Is Active" SortExpression="IsActive" Visible = "false" ></asp:BoundColumn> 
        </Columns> 
      </asp:DataGrid> 

我知道BoundColumns我可以用DataTextFormatStringDataFormatString,但这些不能在HyperLinkColumn使用。它给出的错误不是HyperLinkColumn的有效属性。那么我可以编辑DataGrid后面的代码并将列的格式设置为ToShortDateString,就像使用文本框一样?

回答

0

尝试,而不是

<asp:HyperLinkColumn ItemStyle-CssClass="loading" DataNavigateUrlFormatString="PublicHolidays.aspx?DateID={0}" DataNavigateUrlField="ID" DataTextField="BankHol" HeaderText="Bank Holidays" SortExpression="BankHol" ></asp:HyperLinkColumn> 

<asp:HyperLinkColumn ItemStyle-CssClass="loading" NavigateUrl='PublicHolidays.aspx?DateID=<%# Eval("YourDatetimeColumn").ToString().Substring(0, Eval("YourDatetimeColumn").ToString().IndexOf(" ")) %>' DataTextField="BankHol" HeaderText="Bank Holidays" SortExpression="BankHol" ></asp:HyperLinkColumn> 
+0

它没有工作。日期仍显示为2014-04-21 00:00:00 – user123456789

0

它看起来像DataTextFormatString是有效的:

看到MSDN

无论如何,Eval方法应该以超载设置自定义格式,例如

Eval("{0:MyDateField}", "yyyy-MM-dd") 

问候, 斯特凡诺

相关问题