DataFormatString 属性语法如下:
DataFormatString="{0:格式字符串}"
我们知道在DataFormatString 中的 {0} 表示数据本身,而在冒号后面的格式字符串代表所们希望数据显示的格式;另外在指定的格式符号后可以指定小数所要显示的位数。例如原来的数据为「1.56」,若格式设定为 {0:N1},则输出为「1.5」。其常用的数值格式如下表所示:
格式字符串 输入 结果
"{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
其常用的日期格式如下表所示:
格式 说明 输出格式
{0:yyyy-MM-dd} 2009-03-17
{0:d} 精简日期格式 2009-3-17
{0:D} 详细日期格式 2009年3月17日
{0:f} 完整格式 2009年3月17日 15:43
{0:F} 完整日期时间格式 2009年3月17日 15:43:56
{0:g} 一般格式 2009-3-17 15:43
{0:G} 一般格式 2009-3-17 15:43:56
{0:m}, {0:M} 月日格式 3月17日
{0:s} 适中日期时间格式 2009-03-17T15:43:56
{0:t} 精简时间格式 15:43
{0:T} 详细时间格式 15:43:56
注意:在ASP.NET 2.0中应设置HtmlEncode为false,否则DataFormatString不起作用
例:<asp:BoundField DataField="SubTime" DataFormatString="{0:f}" HeaderText="SubTime" SortExpression="SubTime" HtmlEncode="False" />
这是从网上找来的资料,今天实践时因为用到日期格式,且只想显示“小时:分钟:秒钟”的格式,于是将DataFormatString设为{0:hh:mm:ss},结果发现如果是下午两点钟,用二十四小时制的话照理说应该是显示成“14:00:00”,结果却显示成“02:00:00”了,把DataFormatString设为{0:HH:mm:ss}之后才达到预期的目的。这是一点小区别,顺便记录。