[收藏].net 數據格式設置大全:十一的部落:Xuite日誌
  • 搜尋文章
  • 關鍵字
  • yan.kee
  • 文章分類
  • 最愛連結
  • 我的發燒文
  • 累積 | 今日
    loading......
  • 參觀人氣統計
  • 誰拜訪過我
  • BLOG玩意兒
  • 最新文章
  • 最新回應
  • Re:[作品] 摳叮幫幫忙,by(11)於2008-07-21
    Re:只能在執行 Render() 的過程中調用 RegisterForEventValidation,by(11)於2008-07-03
    Re:[轉]自動清除7天以上的檔案 ,by(haoming)於2008-06-13
    Re:[kuso]尿布舞,by(11)於2008-05-18
    Re:[kuso]尿布舞,by(seth)於2008-05-18
    Re:C#中產生GUID,by(yankee)於2008-02-17
    Re:C#中產生GUID,by(jimmy)於2008-02-16
    Re:開發excel 問題討論串,by(11)於2008-02-02
    Re:Connection Strings 討論串,by(11)於2008-01-27
    Re:SQL 分頁,by(11)於2008-01-25
  • 活動
  • 到台灣玩不帶走一張發票
    ===訪客來自===
    Locations of visitors to this page
  • 日誌使用資源






  • 如何使用RSS
    Powered by Xuite
  • 最新引用
  • 沒有新引用
  • 最愛日誌
  • 2008-07-07 14:57 [收藏].net 數據格式設置大全
  • ?
  • .net文章
  • 好文轉寄
  • 平均分數:0 顆星    投票人數:0
    我要評分:
    標籤 : 


      .NET 格式設置表達式,它在數據顯示在列中之前先應用於數據。
    此表達式,由可選靜態文本和用以下格式表示的格式說明符組成:

    {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));


    來自:csnd



    yan.kee / Xuite日誌 / 回應(0) / 引用(0) / 好文轉寄
  • 回應