Gridview利用DataFormatString属性设置数据格式的方法
本文实例讲述了gridview利用dataformatstring属性设置数据格式的方法。分享给大家供大家参考,具体如下:
首先把gridview的autogeneratecolumns属性设为false(默认是false),datafield选择相应的字段,特别需要注意的是要把需要设置的字段的htmlencode属性设置为false,否则所设置的格式将无法显示,然后就可以设置每个字段的 dataformatstring属性来输出不同的格式了。
dataformatstring 属性语法如下: {a:b}
如:dataformatstring="{0:格式字符串}"
冒号前的值(常规示例中为 a)指定在从零开始的参数列表中的参数索引。此值只能设置为 0,因为每个单元格中只有一个值。
冒号后的字符(常规示例中为 b)指定值的显示格式。另外在指定的格式符号后可以指定小数所要显示的位数。例如原来的数据为「1.56」,若格式设定为 {0:n1},则输出为「1.5」。其常用的数值格式如下表所示:
格式字符 说明
c 以货币格式显示数值。
d 以十进制格式显示数值。
e 以科学记数法(指数)格式显示数值。
f 以固定格式显示数值。
g 以常规格式显示数值。
n 以数字格式显示数值。
x 以十六进制格式显示数值。
下面是一些示例,供大家参考:
格式字符串 输入 结果
"{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 精简日期格式 yyyy-mm-dd
d 详细日期格式 yyyy年mm月dd日
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
最后,介绍另外一种设置的方法,就是直接写入时间格式,如{0:yyyy-mm-dd}将显示与{0:d}相同的格式,要注意的是mm必须是大写,因为mm大写表示的是月份,而mm小写表示的时间里的分钟。
用dataformatstring格式化gridview
在gridview里面显示数据,要显示的数据有好多位小数,就想让它只显示两位小数,在delphi里,直接用displayformat就行了,在.net中,查了半天msdn,发现使用dataformatstring是可以实现这个功能的,但是怎么设置就不起作用,最后发现,由于2.0出于安全性的考虑,还要同时设置htmlencode = false,才能够使dataformatstring生效.
留个记号,下次用的时候,就不用浪费n多时间了.
还有还有,dataformatstring = "{0:f}",是默认格式,显示两位小数,如果需要显示的小数位数为其他值,dataformatstring = "{0:fn}"即可.
例:
<columns> <asp:boundfield datafield="employeeid" /> <asp:boundfield datafield="lastname" /> <asp:boundfield datafield="birthdate" htmlencode ="false" dataformatstring="{0:yyyy-mm-dd}" /> < /columns>
希望本文所述对大家asp.net程序设计有所帮助。