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