本文實例講述了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程序設計有所幫助。