GridView的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

常用的日期時間格式:

格式 說明 輸出格式
d 精簡日期格式 MM/dd/yyyy
D 詳細日期格式 dddd, MMMM dd, yyyy
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}

用DataFormatString格式化GridView
在GridView里面顯示數據,要顯示的數據有好多位小數,就想讓它只顯示兩位小數,在delphi里,直接用DisplayFormat就行了,在.net中,查了半天msdn,發現使用DataFormatString是可以實現這個功能的,但是怎么設置就不起作用,最后發現,由於2.0出於安全性的考慮,還要同時設置HtmlEncode = false,才能夠使DataFormatString生效.
留個記號,下次用的時候,就不用浪費N多時間了.
還有還有,DataFormatString = "{0:F}",是默認格式,顯示兩位小數,如果需要顯示的小數位數為其他值,DataFormatString = "{0:Fn}"即可.

 

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

常用的日期時間格式:

格式 說明 輸出格式
d 精簡日期格式 MM/dd/yyyy
D 詳細日期格式 dddd, MMMM dd, yyyy
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

 

在我們從業務邏輯層獲得數據實體時候,接下來的事情就是要綁定到控件中。數據實體中的一些字段可以直接綁定到界面中,但是有一些字段需要重新格式化格式。比如貨幣單位字段,需要顯示貨幣符號和每隔三位顯示分隔符;再比如日期字段,數據庫中存放的是日期和時間,但是在界面上需要按照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}"

注意:設置了DataFormatString不起作用,請檢查是否設置為 HtmlEncode = false

文章摘自:http://www.cnblogs.com/lf78995525/archive/2010/05/26/1744178.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM