gridview的数据显示格式_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > gridview的数据显示格式

gridview的数据显示格式

 2013/7/31 15:09:11  蒋叶湖  博客园  我要评论(0)
  • 摘要:GridView欄位之格式系統提供的數值資料格式符號格式符號說明C或c貨幣之格式,例:25000之"{0:c}"結果為NT$25,000.00。D或d十進位之格式,例:25000之"{0:d}"結果為25000。E或e科學符號之格式,例:25000之"{0:e}"結果為2.500000e+004。F或fFixed-point之格式,例:25000之"{0:f}"結果為25000.00。G或g一般之格式,例:25000之"{0:g}"結果為25000。N或n數字有逗點之格式,例:25000之"
  • 标签:view 数据

GridView欄位之格式

  • 系統提供的數值資料格式符號

    格式符號   說明 C 或 c 貨幣之格式,例:25000之"{0:c}"結果為NT$25,000.00。 D 或 d 十進位之格式,例:25000之"{0:d}"結果為25000。 E 或 e 科學符號之格式,例:25000之"{0:e}"結果為2.500000e+004。 F 或 f Fixed-point之格式,例:25000之"{0:f}"結果為25000.00。 G 或 g 一般之格式,例:25000之"{0:g}"結果為25000。 N 或 n 數字有逗點之格式,例:25000之"{0:n}"結果為25,000.00。 P 或 p 百分比之格式,例:25000之"{0:p}"結果為2,500,000.00%。 X 或 x 十六進位之格式,例:25000之"{0:x}"結果為61a8。
  • 系統提供的日期格式符號

    格式符號   說明 d 簡短日期之格式,例:"{0:d}"之結果為1900/1/1。 D 完整日期之格式,例:"{0:D}"之結果為1900年1月1日。 f 完整日期簡短時間之格式,例:"{0:f}"之結果為1900年1月1日 上午 12:00。 F 完整日期時間之格式,例:"{0:F}"之結果為1900年1月1日 上午 12:00:00。 g 簡短日期簡短時間之格式,例:"{0:g}"之結果為1900/1/1 上午 12:00。 G 簡短日期完整時間之格式,例:"{0:G}"之結果為1900/1/1 上午 12:00:00。 M 或 m 月日之格式,例:"{0:m}"之結果為1月1日。 R 或 r RFC1123之格式,例:"{0:r}"之結果為Mon, 01 Jan 1900 00:00:00 GMT。 s ISO 8601區域時間之格式,例:"{0:s}"之結果為1900-01-01T00:00:00。 t 簡短時間之格式,例:"{0:t}"之結果為上午 12:00。 T 完整時間之格式,例:"{0:T}"之結果為上午 12:00:00。 u ISO 8601全球時間之格式,例:"{0:u}"之結果為1900-01-01 00:00:00Z。 U 全球時間之格式,例:"{0:U}"之結果為1899年12月31日 下午 04:00:00。 Y 或 y 年月之格式,例:"{0:y}"之結果為1900年1月。

自訂數值格式的符號

格式符號   說明 0 在數字之前或小數點之後補0,例:75.48之"{0:00000.000}"結果為00075.480。 # 表示數字,通常搭配其他符號使用。 . 小數點,通常搭配其他符號使用。 , 一個逗點等於除1000,兩個逗點等於除1000000,例:100000000之"{0:0,,}"結果為100。 % 印出百分比符號,例:75.48之"{0:#%}"結果為7548%。 E+0,E-0,e+0 或 e-0

以科學符號表示,例:75.48之"{0:#.###e+0}"結果為7.548e+1。

 

 

 

 

比如,我们想在GridView中的值转化为%格式。

在编辑列里面有DataFormatString={0:p};即可

 

 


 

Tag:

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://xiekeli.blogbus.com/logs/10004523.html

数据格式设置表达式

.NET Framework 格式设置表达式,它在数据显示在列中之前先应用于数据。
此表达式由可选静态文本和用以下格式表示的格式说明符组成:

{0:format specifier}

0 是参数索引,它指示列中要格式化的数据元素;因此,通常用零来指示第一个(且唯一的)元素。
format specifier 前面有一个冒号 (:),它由一个或多个字母组成,指示如何格式化数据。
可以使用的格式说明符取决于要格式化的数据类型:日期、数字或其他类型。

下表显示了不同数据类型的格式设置表达式的示例。有关格式设置表达式的更多信息,请参见格式化类型。

 

格式设置表达式 应用于此数据类型 说明 Price: {0:C} numeric/decimal 显示“Price:”,后跟以货币格式表示的数字。货币格式取决于通过 Page 指令或 Web.config 文件中的区域性属性指定的区域性设置。 {0:D4} integer(不能和小数一起使用。) 在由零填充的四个字符宽的字段中显示整数。 {0:N2}% numeric 显示精确到小数点后两位的数字,后跟“%” {0:000.0} numeric/decimal 四舍五入到小数点后一位的数字。不到三位的数字用零填充。 {0:D} date/datetime 长日期格式(“Thursday, August 06, 1996”)。日期格式取决于页或 Web.config 文件的区域性设置。 {0:d} date/datetime 短日期格式(“12/31/99”)。 {0:yy-MM-dd} date/datetime 用数字的年-月-日表示的日期(96-08-06)。

ASP.NET设置数据格式应用示例:
       {0:d}     YY-MM-DD
      {0:p}     百分比00.00%
      {0:N2} 12.68
        {0:N0} 13
        {0:c2}   $12.68
        {0:d}      3/23/2003       
        {0:T}    12:00:00 AM
        {0:男;;女}

DataGrid数据格式的Format-- DataFormatString

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

DateTime.Now.ToString("yyyy-MM-dd");//这种模式最好
aspx:
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" Width="204px">
<Columns>
<asp:BoundColumn DataField="date" DataFormatString="{0:yyyy-MM-dd}"></asp:BoundColumn>

</asp:datagrid>

    在我们从业务逻辑层获得数据实体时候,接下来的事情就是要绑定到控件中。数据实体中的一些字段可以直接绑定到界面中,但是有一些字段需要重新格式化格式。 比如货币单位字段,需要显示货币符号和每隔三位显示分隔符;再比如日期字段,数据库中存放的是日期和时间,但是在界面上需要按照XXXX年XX月XX日的 格式显示。这时候我们就用到了DataFormatString属性。

<asp:GridView ID="grvResult" runat="server" AutoGenerateColumns="False" Width="100%">

    <Columns>

        <asp:BoundField HeaderText="预定日期" DataField="OperationDate" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False">

        </asp:BoundField>     

        <asp:BoundField HeaderText="订单总计" DataField="TotalRate" DataFormatString="{0:C}" HtmlEncode="False">

        </asp:BoundField>

    </Columns>

</asp:GridView>

例如上面的代码展示了日期和货币两种绑定方式。DataFormatString中的{0}是固定的格式,这和String.Fromat(“{0}”, someString)中的{0}是一个用法,表示绑定上下文的参数索引编号。然后,在后面加入格式化字符串,具体的使用方法可以参考MSDN

这里需要注意以下几点
1. 在GridView中的asp:BoundField使用DataFormatString必须设置属性HtmlEncode="False",否则不起作用。
2. 如果需要使用日期类型的格式化字符串,必须数据实体中对应的字段也应该日起类型的。
3. 格式化字符串C代表货币单位,需要绑定的数据类型应该是数字类型的。如果是字符串类型的不起作用,需要手动添加格式化字符串为DataFormatString="¥{0:C}"。

总结:
     GridView中使用DataFromatString与在DataGrid中使用起来有些不同的!在GridView中的BoundField新增了HtmlEncode 属性,且默认是true,这就使得DataFromatString失效!

string.format格式结果


String.Format

(C) Currency: . . . . . . . . ($123.00)

(D) Decimal:. . . . . . . . . -123

(E) Scientific: . . . . . . . -1.234500E+002

(F) Fixed point:. . . . . . . -123.45

(G) General:. . . . . . . . . -123

(N) Number: . . . . . . . . . -123.00

(P) Percent:. . . . . . . . . -12,345.00 %

(R) Round-trip: . . . . . . . -123.45

(X) Hexadecimal:. . . . . . . FFFFFF85

(d) Short date: . . . . . . . 6/26/2004

(D) Long date:. . . . . . . . Saturday, June 26, 2004

(t) Short time: . . . . . . . 8:11 PM

(T) Long time:. . . . . . . . 8:11:04 PM

(f) Full date/short time: . . Saturday, June 26, 2004 8:11 PM

(F) Full date/long time:. . . Saturday, June 26, 2004 8:11:04 PM

(g) General date/short time:. 6/26/2004 8:11 PM

(G) General date/long time: . 6/26/2004 8:11:04 PM

(M) Month:. . . . . . . . . . June 26

(R) RFC1123:. . . . . . . . . Sat, 26 Jun 2004 20:11:04 GMT

(s) Sortable: . . . . . . . . 2004-06-26T20:11:04

(u) Universal sortable: . . . 2004-06-26 20:11:04Z (invariant)

(U) Universal sortable: . . . Sunday, June 27, 2004 3:11:04 AM

(Y) Year: . . . . . . . . . . June, 2004

(G) General:. . . . . . . . . Green

(F) Flags:. . . . . . . . . . Green (flags or integer)

(D) Decimal number: . . . . . 3

(X) Hexadecimal:. . . . . . . 00000003

说明:
String.Format
将指定的 String 中的每个格式项替换为相应对象的值的文本等效项。

例子

int iVisit = 100;
string szName = "Jackfled";
Response.Write(String.Format("您的帐号是:{0} 。访问了 {1} 次.", szName, iVisit));

发表评论
用户名: 匿名