您的位置:首页 > 其它

VS2005下BoundField的DataFormatString不起作用了?

2008-01-08 15:45 429 查看
原因: 项目做好后,客户的服务器安装的是英文操作系统,原来正常显示的时间格式都不大友好了,显示成了 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>

但是,很快在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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: