在DataView中更改字段的日期格式

时间:2013-10-09 23:32:25

标签: asp.net dataview

我在DataView中有一个日期字段,我想格式化以显示“MM / DD / YYYY”。问题是我从服务中得到这个日期,我似乎无法在我在DataView中设置字段的Eval函数中对其进行格式化。

<asp:GridView ID="gvTransactionHistory" runat="server" 
            AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="lblTransactionDate" runat="server" Text='<%# Eval("transactionDate") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView> 

我尝试将String.Format(“{mm / DD / yyyy}”)添加到Text属性,但这是不允许的。我也尝试了DataView的Pre_Render事件,但我没有遇到太多运气。

2 个答案:

答案 0 :(得分:2)

格式是Eval的第二个参数。以下内容可以帮助您:

<asp:Label ID="lblTransactionDate" runat="server" 
    Text='<%# Eval("transactionDate", "{0:MM/dd/yyyy}") %>'></asp:Label>

请注意,我已将格式字符串从mm/DD/yyyy更改为MM/dd/yyyy

MM - 月

mm - 分钟

DD - 无效

dd - 日


修改

我认为你的transactionDate可能是一个字符串。在这种情况下,请使用以下内容:

<asp:Label ID="lblTransactionDate" runat="server" 
    Text='<%# String.Format("{0:MM/dd/yyyy}",DateTime.Parse(Eval("transactionDate").ToString())) %>'></asp:Label>

上面我已将string转换为DateTime,以便它可以使用该格式。

答案 1 :(得分:1)

您可以使用:

<asp:Label ID="lblTransactionDate" runat="server" Text='<%#String.Format("{0:MM/dd/yyyy}",Eval("transactionDate"))  %>'></asp:Label>