首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET DataBinder.Eval 用法完整指南與最佳實踐

     編輯:ASP.NET 基礎

DataBinder.Eval 核心語法與高效寫法

在 ASP.NET 資料繫結場景中,DataBinder.Eval 是最常用的資料繫結方法。以下整理了效能最佳的三種標準寫法:

<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
<%# DataBinder.Eval(Container.DataItem, "ColumnName", null) %>
<%# DataBinder.Eval(Container, "DataItem.ColumnName", null) %>

這三種寫法在效能上表現最優,建議優先使用。

進階繫結技巧

自動編號

<%# Container.DataItemIndex + 1 %>

索引存取

<%# DataBinder.Eval(Container.DataItem, "[n]") %>

強型別轉換繫結

適用於 DataRowView、DbDataRecord 或自定義類型:

<%# ((DataRowView)Container.DataItem)["ColumnName"] %>
<%# ((DataRowView)Container.DataItem).Row["ColumnName"] %>
<%# ((DbDataRecord)Container.DataItem)[0] %>
<%# (((CustomType)Container.DataItem)).Property.ToString() %>

格式化輸出實戰範例

貨幣格式化

<%# DataBinder.Eval(Container.DataItem, "UnitPrice", "${0:F2}") %>

布林值轉圖示

<ItemTemplate>
  <asp:Image Width="12" Height="12" Border="0" runat="server"
    AlternateText='<%# DataBinder.Eval(Container.DataItem, "Discontinued", "{0:G}") %>'
    ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Discontinued", "~/images/{0:G}.gif") %>' />
</ItemTemplate>

日期格式化

<%# DataBinder.Eval(Container.DataItem, "Company_Ureg_Date", "{0:yyyy-M-d}") %>
<%# DataBinder.Eval(Container.DataItem, "DateField", "{0:d}") %>

字串擷取與型別轉換

((string)DataBinder.Eval(Container, "DataItem.P_SHIP_TIME_SBM8")).Substring(4,4)

標準格式化字串對照表

指定項類型格式輸出 (1.42)輸出 (-12400)
cCurrency{0:c}$1.42-$12,400
dDecimal{0:d}FormatException-12400
eScientific{0:e}1.420000e+000-1.240000e+004
fFixed point{0:f}1.42-12400.00
gGeneral{0:g}1.42-12400
nNumber{0:n}1.42-12,400
rRound trip{0:r}1.42FormatException
xHexadecimal{0:x4}FormatExceptioncf90

全球化與貨幣符號設定

貨幣格式 {0:c} 的顯示結果取決於 Web.config 的 globalization 設定:

美式貨幣 (預設)

<system.web>
  <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>

輸出:$3,000.10

英式貨幣

<system.web>
  <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="en-US" />
</system.web>

輸出:£3,000.10

中式貨幣

<system.web>
  <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN" />
</system.web>

輸出:¥3,000.10

也可在程式碼中直接使用 string.Format("{0:C}", price) 達成相同效果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved