DataFormatString
在 我們從業務邏輯層獲得數據實體時候,接下來的事情就是要綁定到控件中。數據實體中的一些字段可以直接綁定到界面中,但是有一些字段需要重新格式化格式。比 如貨幣單位字段,需要顯示貨幣符號和每隔三位顯示分隔符;再比如日期字段,數據庫中存放的是日期和時間,但是在界面上需要按照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
<asp:BoundField DataField="Email"
??????????????? DataFormatString="<a href='mailto:{0}'>{0}</a>"
??????????????? HeaderText="郵箱"
??????????????? SortExpression="Email"
??????????????? HtmlEncode="false"/>
總結
以上是生活随笔為你收集整理的DataFormatString的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: url中传递参数
- 下一篇: 主机连接校园网,ubuntu虚拟机桥接模