我在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事件,但我没有遇到太多运气。
答案 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>