ASP.NET之GridView的BoundField.DataFormatString 属性
语法:
public virtual string DataFormatString { get; set; }
属性值:
类型:System.String
指定字段值的显示格式的格式化字符串。 默认值为空字符串 (""),表示尚无特殊格式设置应用于该字段值。
备注
使用 DataFormatString 属性为 BoundField 对象中显示的值指定自定义显示格式。 如果未设置 DataFormatString 属性,则字段的值在显示时不使用任何特殊的格式设置。
(注意
在 3.5 以前的 ASP.NET 版本中,您必需将 HtmlEncode 属性设置为 false 以设置非字符串数据类型的字段的格式。 否则,将在应用 DataFormatString 属性中存储的格式字符串之前,通过默认转换方法将字段值转换为字符串。
)
默认情况下,只有当包含 BoundField 对象的数据绑定控件处于只读模式时,格式化字符串才应用到字段值。 若要在编辑模式中将格式化字符串应用到字段值,请将 ApplyFormatInEditMode 属性设置为 true。
格式化字符串可以为任意字符串,并且通常包含字段值的占位符。 例如,在格式化字符串 Item Value: {0} 中,当 BoundField 对象中显示字符串时,字段的值会代替 {0} 占位符。 格式化字符串的剩余部分显示为文本。
如果格式化字符串不包含占位符,则只有格式化字符串本身包含在最终显示文本中(不包含来自数据源的字段值)。 如果占位符是使用大括号括起来的 0(零),如上例中所示,该字段值可以通过默认方法转换为字符串。 您可以向零追加指定字段值格式如何设置的字符串。 例如,用于数值字段的占位符 {0:C} 指定字段的值应该转换为货币格式。
使用 Format 方法应用格式设置。 左大括号之后的数是该方法使用的语法的一部分,指示该占位符在一系列值中应使用的一个。 由于每个单元格中只有一个字段值,因此左大括号之后的数只能设置为 0。
下表列出用于数值字段的标准格式字符。 这些格式字符不区分大小写,但 X 除外,它以指定的大小写形式显示十六进制字符。 您可以向大多数格式字符追加数字,以指定需要显示多少有效数字或小数位。
注意
在大多数情况下,格式设置取决于服务器的区域性设置。 这些示例用于 en-US 的区域设置。
格式字符 | 说明 | 示例 |
---|---|---|
C或 c
|
以货币格式显示数值。 您可以指定小数位数。
|
格式:{0:C} 123.456 -> $123.46 格式:{0:C3} 123.456 -> $123.456
|
D或 d
|
以十进制格式显示整数值。 您可以指定位数。 (尽管该类型称为“小数”,但数字格式化为整数。)
|
格式:{0:D} 1234 -> 1234 格式:{0:D6} 1234 -> 001234
|
E或 e
|
以科学记数法(指数)格式显示数值。 您可以指定小数位数。
|
格式:{0:E} 1052.0329112756 -> 1.052033E+003 格式:{0:E2} -1052.0329112756 -> -1.05e+003
|
F或 f
|
以固定格式显示数值。 您可以指定小数位数。
|
格式:{0:F} 1234.567 -> 1234.57 格式:{0:F3} 1234.567 -> 1234.567
|
G或 g
|
以常规格式显示数值(最紧凑的定点表示法或科学记数法)。 您可以指定有效数字位数。
|
格式:{0:G} -123.456 -> -123.456 格式:{0:G2} -123.456 -> -120
|
N或 n
|
以数字格式显示数值(包括组分隔符和可选的负号)。 您可以指定小数位数。
|
格式:{0:N} 1234.567 -> 1,234.57 格式:{0:N4} 1234.567 -> 1,234.5670
|
P或 p
|
以百分比格式显示数值。 您可以指定小数位数。
|
格式:{0:P} 1 -> 100.00% 格式:{0:P1} .5 -> 50.0%
|
R或 r
|
以往返格式显示 Single、 Double 或 BigInteger 值。
|
格式:{0:R} 123456789.12345678 -> 123456789.12345678
|
X或 x
|
以十六进制格式显示整数值。 您可以指定位数。
|
格式:{0:X} 255 -> FF 格式:{0:x4} 255 -> 00ff
|
有关更多信息以及演示如何设置用于其他区域性值的格式的示例,请参见标准数字格式字符串。 您也可以创建自定义数字格式字符串。 有关更多信息,请参见自定义数字格式字符串。
下表列出用于 DateTime 字段的格式字符。 这些格式规范的大多数会导致不同的输出,具体取决于区域性设置。 这些示例用于具有 en-US 区域性设置的值为 6/15/2009 1:45:30 PM 的 DateTime。
格
式字符
|
说明
|
示例
|
---|---|---|
d
|
短日期模式。
|
格式:{0:d} 6/15/2009 1:45:30 PM -> 6/15/2009
|
D
|
长日期模式。
|
格式:{0:D} 6/15/2009 1:45:30 PM ->Monday, June 15, 2009
|
f
|
完整日期/时间模式(短时间)。
|
格式:{0:f} 6/15/2009 1:45:30 PM -> Monday, June 15, 2009 1:45 PM
|
F
|
完整日期/时间模式(长时间)。
|
格式:{0:F} 6/15/2009 1:45:30 PM -> Monday, June 15, 2009 1:45:30 PM
|
g
|
常规日期/时间模式(短时间)。
|
格式:{0:g} 6/15/2009 1:45:30 PM -> 6/15/2009 1:45 PM
|
G
|
常规日期/时间模式(长时间)。
|
格式:{0:G} 6/15/2009 1:45:30 PM -> 6/15/2009 1:45:30 PM
|
M或 m
|
月/日模式。
|
格式:{0:M} 6/15/2009 1:45:30 PM -> June 15
|
O或 o
|
往返日期/时间模式。
|
格式:{0:o} 6/15/2009 1:45:30 PM -> 2009-06-15T13:45:30.0900000
|
R或 r
|
RFC1123 模式(有关信息,请参见 DateTimeFormatInfo.RFC1123Pattern)。
|
格式:{0:R} 6/15/2009 1:45:30 PM -> Mon, 15 Jun 2009 20:45:30 GMT
|
s
|
可排序日期/时间模式。
|
格式:{0:s} 6/15/2009 1:45:30 PM -> 2009-06-15T13:45:30
|
t
|
短时间模式。
|
格式:{0:t} 6/15/2009 1:45:30 PM -> 1:45 PM
|
T
|
长时间模式。
|
格式:{0:T} 6/15/2009 1:45:30 PM -> 1:45:30 PM
|
u
|
通用可排序日期/时间模式。
|
格式:{0:u} 6/15/2009 1:45:30 PM -> 2009-06-15 20:45:30Z
|
U
|
通用完整日期/时间模式。
|
格式:{0:U} 6/15/2009 1:45:30 PM -> Monday, June 15, 2009 8:45:30 PM
|
Y或 y
|
年月模式。
|
格式:{0:Y} 6/15/2009 1:45:30 PM -> June, 2009
|
有关更多信息以及演示如何设置用于其他区域性值的格式的示例,请参见标准日期和时间格式字符串。 您也可以创建自定义日期和时间格式字符串。 有关更多信息,请参见自定义日期和时间格式字符串。
示例:
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AWLTConnectionString %>" SelectCommand="SELECT ProductID, Name, ProductNumber, ListPrice, Weight, ModifiedDate FROM SalesLT.Product"> </asp:SqlDataSource> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ProductID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ProductID" HeaderText="ProductID" InsertVisible="False" ReadOnly="True" SortExpression="ProductID" DataFormatString="{0:D6}" /> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" DataFormatString="{0}" /> <asp:BoundField DataField="ProductNumber" HeaderText="ProductNumber" SortExpression="ProductNumber" DataFormatString= "#{0}" /> <asp:BoundField DataField="ListPrice" HeaderText="ListPrice" SortExpression="ListPrice" DataFormatString="{0:C}" /> <asp:BoundField DataField="Weight" HeaderText="Weight" SortExpression="Weight" DataFormatString="{0:F3}" /> <asp:BoundField DataField="ModifiedDate" HeaderText="ModifiedDate" SortExpression="ModifiedDate" DataFormatString="{0:d}" /> </Columns> </asp:GridView> </div> </form> </body> </html>
|