DataFormatString
在 我們從業(yè)務(wù)邏輯層獲得數(shù)據(jù)實(shí)體時候,接下來的事情就是要綁定到控件中。數(shù)據(jù)實(shí)體中的一些字段可以直接綁定到界面中,但是有一些字段需要重新格式化格式。比 如貨幣單位字段,需要顯示貨幣符號和每隔三位顯示分隔符;再比如日期字段,數(shù)據(jù)庫中存放的是日期和時間,但是在界面上需要按照XXXX年XX月XX日的格 式顯示。這時候我們就用到了DataFormatString 屬性。
< asp : GridView ID ="grvResult" runat ="server" AutoGenerateColumns ="False" Width ="100%">
< Columns >
< asp : BoundField HeaderText =" 預(yù)定日期 " 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}是一個用法,表示綁定上下文的參數(shù)索引編號。然后,在后面加入格式化字符串,具體的使用方法可以參考MSDN。
這里需要注意以下幾點(diǎn)
1:在GridView中的asp : BoundField 使用DataFormatString 必須設(shè)置屬性HtmlEncode ="False" ,否則不起作用。
2:如果需要使用日期類型的格式化字符串,必須數(shù)據(jù)實(shí)體中對應(yīng)的字段也應(yīng)該日起類型的。
3:格式化字符串C代表貨幣單位,需要綁定的數(shù)據(jù)類型應(yīng)該是數(shù)字類型的。如果是字符串類型的不起作用,需要手動添加格式化字符串為DataFormatString =" ¥ {0:C}" 。
使用 DataFormatString 屬性來提供列中各項的自定義格式。
獲取或設(shè)置指定列中各項的顯示格式的字符串。指定列中各項的顯示格式的格式化字符串,默認(rèn)值為 String.Empty。
數(shù)據(jù)格式字符串由以冒號分隔的兩部分組成,形式為 { A : Bxx }。例如,格式化字符串 {0:F2} 將顯示帶兩位小數(shù)的定點(diǎn)數(shù)。
整個字符串必須放在大括號內(nèi),表示它是格式字符串,而不是實(shí)際字符串。大括號外的任何文本均顯示為實(shí)際文本。
冒號前的值指定在從零開始的參數(shù)列表中的參數(shù)索引。值只能設(shè)置為 0,因?yàn)槊總€單元格中只有一個值。
冒號后的字符指定值的顯示格式。下表列出了一些常用格式。
格式字符 說明
C 以貨幣格式顯示數(shù)值
D 以十進(jìn)制格式顯示數(shù)值。
E 以科學(xué)記數(shù)法(指數(shù))格式顯示數(shù)值。
F 以固定格式顯示數(shù)值。
G 以常規(guī)格式顯示數(shù)值。
N 以數(shù)字格式顯示數(shù)值。
X 以十六進(jìn)制格式顯示數(shù)值。
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 ,注意區(qū)別大小寫,C#里其它時候了是這樣的用法,要區(qū)別大小寫。
格式字符串 輸入 結(jié)果
"{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 詳細(xì)日期格式 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 詳細(xì)時間格式 HH:mm:ss
<asp:BoundField DataField="Email"
??????????????? DataFormatString="<a href='mailto:{0}'>{0}</a>"
??????????????? HeaderText="郵箱"
??????????????? SortExpression="Email"
??????????????? HtmlEncode="false"/>
總結(jié)
以上是生活随笔為你收集整理的DataFormatString的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: url中传递参数
- 下一篇: DVWA 反射型XSS XSS(Refl