原因: 项目做好后,客户的服务器安装的是英文操作系统,原来正常显示的时间格式都不大友好了,显示成了 1/8/2008 3:26:03 PM , 因此需要对时间格式进行设置一下,最后正确显示的结果是:2007-12-24 10:32:14
<asp:TemplateField>
<ItemTemplate>
[<%# DataBinder.Eval(Container, "DataItem.UpdateTime", "{0:yyyy-MM-dd HH:mm:ss}")%>]
</ItemTemplate>
<ItemStyle CssClass="grdStyle" Width="135px" Font-Size="12px" />
</asp:TemplateField>
如上例子模板列是可以正常显示的
但是如果用<asp:BoundField 就不起作用了
后来网上查了资料才发现VS2005还要再设置一下 HtmlEncode="false" 才可以了
我们知道在VS2003甚至VS2005Beta下可以用DataFormatString格式化BoundField数据的输出:
<asp:BoundField HeaderText="DisplayText" DataField="FieldName" DataFormatString="{0:F2}">
<ItemStyle HorizontalAlign="Right" Width="60px"></ItemStyle>
<HeaderStyle HorizontalAlign="Right"></HeaderStyle>
</asp:BoundField>
<ItemStyle HorizontalAlign="Right" Width="60px"></ItemStyle>
<HeaderStyle HorizontalAlign="Right"></HeaderStyle>
</asp:BoundField>
但是,很快在VS2005中,你会发现DataFormatString不起作用了。
这时候,应该同时设置HtmlEncode为false,DataFormatString才会起作用:
<asp:BoundField HeaderText="DisplayText" DataField="FieldName" DataFormatString="{0:F2}" HtmlEncode="false">
<ItemStyle HorizontalAlign="Right" Width="60px"></ItemStyle>
<HeaderStyle HorizontalAlign="Right"></HeaderStyle>
</asp:BoundField>
<ItemStyle HorizontalAlign="Right" Width="60px"></ItemStyle>
<HeaderStyle HorizontalAlign="Right"></HeaderStyle>
</asp:BoundField>