可以将数据网格中的列格式化为ToShortDateString吗?

时间:2015-07-02 16:09:40

标签: c# asp.net hyperlink datagrid date-format

我在数据网格中有一个列,显示日期,如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,我可以使用DataTextFormatStringDataFormatString,但这些不能在HyperLinkColumn中使用。它使错误不是HyperLinkColumn的有效属性。那么我可以编辑DataGrid背后的代码并将列格式化为ToShortDateString,就像使用文本框一样吗?

2 个答案:

答案 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")

此致 斯特凡诺

相关问题