我在数据网格中有一个列,显示日期,如2014-04-21 00:00:00,但我想显示它像2014-04-21。
<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,我可以使用DataTextFormatString
或DataFormatString
,但这些不能在HyperLinkColumn中使用。它使错误不是HyperLinkColumn的有效属性。那么我可以编辑DataGrid背后的代码并将列格式化为ToShortDateString,就像使用文本框一样吗?
答案 0 :(得分: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>
答案 1 :(得分:0)
看起来DataTextFormatString有效:
请参阅MSDN
无论如何,Eval方法应该有一个重载才能设置自定义格式,例如
Eval("{0:MyDateField}", "yyyy-MM-dd")
此致 斯特凡诺