命名空间:
System.Web.UI.WebControls
程序集:
System.Web(在 System.Web.dll 中)
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 |
有关更多信息以及演示如何设置用于其他区域性值的格式的示例,请参见标准日期和时间格式字符串。 您也可以创建自定义日期和时间格式字符串。 有关更多信息,请参见自定义日期和时间格式字符串。
与本主题对应的 Visual Studio 网站项目及源代码可以从 Download(下载)网页获得。
下面的示例演示如何使用 DataFormatString 属性为字段值指定自定义显示格式。
<%@ 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>
下面的示例演示此示例生成的一行输出。
ProductID | Name | ProductNumber | ListPrice | 重量 | ModifiedDate |
---|
000680 | HL Road Frame - Black, 58 | #FR-R92B-58 | $1,431.50 | 1016.040 | 3/11/2004 |
.NET Framework
受以下版本支持:4.5.2、4.5.1、4.5、4、3.5、3.0、2.0
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。