关于格式化的小结

Asp.Net2.0中GridView的DataFormatString="{0:yyyy-MM-dd}"不起作用解决办法
<Columns>
                <asp:BoundField DataField="EmployeeId" />
                <asp:BoundField DataField="LastName" />
                <asp:BoundField DataField="BirthDate" HtmlEncode ="false" DataFormatString="{0:yyyy-MM-dd}" />
</Columns>
注意红色部分 必须设置为false


 asp.net数据格式的Format-- DataFormatString
 我们在呈现数据的时候,不要将未经修饰过的数据呈现给使用者。例如金额一万元,如果我们直接显示「10000」,可能会导致使用者看成一千或十万,造成使用者阅读数据上的困扰。若我们将一万元润饰后输出为「NT$10,000」,不但让使比较好阅读,也会让使用者减少犯错的机会。
下列画面为润饰过的结果:
上述数据除了将DataGrid Web 控件以颜色来区隔记录外,最主要将日期、单价以及小计这三个计字段的数据修饰的更容易阅读。要修饰字段的输出,只要设定字段的DataFormatString 属性即可;其使用语法如下:

DataFormatString="{0:格式字符串}"

我们知道在DataFormatString 中的 {0} 表示数据本身,而在冒号后面的格式字符串代表所们希望数据显示的格式;另外在指定的格式符号后可以指定小数所要显示的位数。例如原来的数据为「12.34」,若格式设定为 {0:N1},则输出为「12.3」。其常用的数值格式如下表所示:

格式字符串 资料 结果
"{0:C}" 12345.6789 $12,345.68
"{0:C}" -12345.6789 ($12,345.68)
"{0:D}" 12345 12345
"{0:D8}" 12345 00012345
"{0:E}" 12345.6789 1234568E+004
"{0:E10}" 12345.6789 1.2345678900E+004
"{0:F}" 12345.6789 12345.68
"{0:F0}" 12345.6789 12346
"{0:G}" 12345.6789 12345.6789
"{0:G7}" 123456789 1.234568E8
"{0:N}" 12345.6789 12,345.68
"{0:N4}" 123456789 123,456,789.0000
"Total: {0:C}" 12345.6789 Total: $12345.68

其常用的日期格式如下表所示:

格式 说明 输出格式
d 精简日期格式 MM/dd/yyyy
D 详细日期格式 dddd, MMMM dd, yyyy
f 完整格式 (long date + short time) dddd, MMMM dd, yyyy HH:mm
F
完整日期时间格式
(long date + long time)
dddd, MMMM dd, yyyy HH:mm:ss
g 一般格式 (short date + short time) MM/dd/yyyy HH:mm
G 一般格式 (short date + long time) MM/dd/yyyy HH:mm:ss
m,M 月日格式 MMMM dd
s 适中日期时间格式 yyyy-MM-dd HH:mm:ss
t 精简时间格式 HH:mm
T 详细时间格式 HH:mm:ss

        我们知道在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>

 

 

 

 

 

 

 

 

 

 

posted @ 2007-08-02 18:02  nestea  阅读(212)  评论(0编辑  收藏  举报