DataFormatString的使用

來源:互聯網
上載者:User
在我們從商務邏輯層獲得資料實體時候,接下來的事情就是要綁定到控制項中。資料實體中的一些欄位可以直接綁定到介面中,但是有一些欄位需要重新格式化格式。比如貨幣單位欄位,需要顯示貨幣符號和每隔三位顯示分隔字元;再比如日期欄位,資料庫中存放的是日期和時間,但是在介面上需要按照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 屬性來提供列中各項的自訂格式。

       擷取或設定指定列中各項的顯示格式的字串。指定列中各項的顯示格式的格式化字串,預設值為 String.Empty。

  資料格式字串由以冒號分隔的兩部分組成,形式為 { A : Bxx }。例如,格式化字串 {0:F2} 將顯示帶兩位小數的定點數。  

  整個字串必須放在大括弧內,表示它是格式字串,而不是實際字串。大括弧外的任何文本均顯示為實際文本。

  冒號前的值指定在從零開始的參數列表中的參數索引。值只能設定為 0,因為每個儲存格中只有一個值。

  冒號後的字元指定值的顯示格式。下表列出了一些常用格式。

格式字元   說明

C   以貨幣格式顯示數值。

D   以十進位格式顯示數值。

E   以科學記號標記法(指數)格式顯示數值。

F   以固定格式顯示數值。

G   以常規格式顯示數值。

N   以數字格式顯示數值。

X   以十六進位格式顯示數值。

MSDN樣本:

<asp:BoundColumn HeaderText="Item" DataField="Item" ReadOnly="True" /> <asp:BoundColumn HeaderText="Quantity" DataField="Qty" DataFormatString="{0:N0}"/> <asp:BoundColumn HeaderText="Price" DataField="Price" DataFormatString="{0:c}" /> <asp:BoundColumn HeaderText="Weight" DataField="Weight" ReadOnly="True" DataFormatString="{0:F3}" /> <asp:BoundColumn HeaderText="Expires" DataField="Expires" ReadOnly="True" DataFormatString="{0:g}" />

格式日期:DataFormatString="{0: yyyy-MM-dd}"   

格式時間:DataFormatString="{0: hh:mm:ss}"  

說明:大寫的M是 Month,小寫m是minute ,注意區別大小寫,C#裡其它時候了是這樣的用法,要區別大小寫。

格式字串 輸入 結果
"{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

 

原文:http://hi.baidu.com/wujuguang/blog/item/763cba1e1dc30a1a413417aa.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.