DataBinder.Eval用法範例

//1、DataBinder.Eval的基本格式
//在綁定數據時常常會用到這個句程序:
<% # DataBinder.Eval(Container.DataItem,"xxxx") %> 或者 <% # DataBinder.Eval(Container,"DataItem.xxxx") %>
//今天又學到一種,並且微軟也說這種方法的效率要比以上兩種高。
<% # ((DataRowView)Container.DataItem)["xxxx"] %>
//頗有用的,這樣能夠在前臺頁面作好多事情了。
//還要記住要這樣用必需要在前臺頁面導入名稱空間System.Data,不然會生成錯誤信息。
<% @ Import namespace="System.Data"  %>
//這種用法其實和
<% # ((DictionaryEntry)Container.DataItem).Key %> 是一個道理。
Text='
<% # DataBinder.Eval(Container.DataItem, "字段" %> '
//這樣的方法是最快的
Text='
<% # GetPrice()  %> '
//也能夠綁定方法,但方法要是public的
Text='
<% "CarDetails.aspx?CarID=" + DataBinder.Eval(Container.DataItem, "CarID" %> '
//還能夠鏈接多個字段
//關鍵是Container這個東西,它比較神祕。它的名稱空間是System.ComponentModel。

 

//2、DataBinder.Eval實現判斷選擇
< asp:TemplateColumn  HeaderText ="性別" >
< ItemTemplate >
<% # DGFormatSex(Convert.ToString(DataBinder.Eval(Container.DataItem,"xb")))  %>
</ ItemTemplate >
</ asp:TemplateColumn >
//cs裏定義DGFormatSex方法
protected string DGFormatSex(string xb)
{
if(xb == "1")
return "男";
else
return "女";
}

 

Asp.net框架提供了一個靜態方法DataBinder.Eval,能夠計算後期數據綁定表達式的值,並能夠將結果任意格式化爲字符串。DataBinder.Eval是很方便的,他排除了許多開發人員必須做的(經過強制改變值的類型來獲得預期的數據類型)顯式轉換。尤爲是在帶有模板列表的數據綁定控件中,由於常常須要顯式轉換數據行和數據字段,因此它特別有用。
仔細看下面的代碼,整數將被顯示爲貨幣型字符串。使用標準的asp.net數據綁定語法,爲了獲得數據字段IntegerValue,你必須首先顯式轉換數據行的類型,而後做爲String.Format方法的參數才能獲得結果


web

<% String .Format( " {0:c} " , ((DataRowView)Container.DataItem)[ " IntegerValue " ])  %>



這樣的語法實在錯綜複雜的難以記憶。比較而言,DataBinder.Eval 就很簡單了。它帶有三個參數:數據項的命名容器、數據字段名稱和格式化字符串。在模板列表如DataList、DataGrid、或 Repeater,命名容器老是Container.DataItem。 Page 是另外一個能夠被DataBinder.Eval使用的命名容器。框架

<% # DataBinder.Eval(Container.DataItem,  " IntegerValue " " {0:c} " %>



格式化字符串參數是可選的。若是忽略參數,DataBinder.Eval 返回對象類型的值,就象下面的代碼這樣:
asp.net

<% # (bool)DataBinder.Eval(Container.DataItem,  " BoolValue " %>



很重要的一點須要注意:因爲受後期綁定影響,DataBinder.Eval與標準的數據綁定語法相比,在執行效率上有明顯的差異。所以有選擇地使用DataBinder.Eval,特別是不須要對字符串進行格式化的時候。ui

 
 
範例

//顯示二位小數spa

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

 

//{0:G}表明顯示True或False.net

< 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 >

 

//轉換類型orm

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

 

{0:d} 日期只顯示年月日server

{0:yyyy-mm-dd} 按格式顯示年月日對象

{0:c} 貨幣樣式blog

讀取數據時如何轉換回車符<%# DataBinder.Eval(Container.DataItem, "User_Content")%>

<% #   DataBinder.Eval(Container.DataItem,    " User_Content " ).ToString().Replace( "   " , " 你要轉換的符號 " ) %>   

 

轉換類型
Specifier Type     Format   Output (Passed Double 1.42)  Output (Passed Int -12400) 
c  Currency        {0:c}     $1.42     -$12,400 
d  Decimal         {0:d}    System.FormatException  -12400 
e  Scientific      {0:e}    1.420000e+000    -1.240000e+004 
f  Fixed point     {0:f}  1.42    -12400.00 
g  General         {0:g}  1.42     -12400 
n  Number with commas for thousands  {0:n}  1.42     -12,400 
r  Round trippable    {0:r}  1.42     System.FormatException 
x  Hexadecimal    {0:x4}  System.FormatException   cf90


{0:d} 日期只顯示年月日
{0:yyyy-mm-dd} 按格式顯示年月日


樣式取決於 Web.config 中的設置

{0:c}  或 {0:£0,000.00} 貨幣樣式  標準英國貨幣樣式
<system.web>
      <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="en-US" />
</system.web>
顯示爲 £3,000.10

{0:c}  或 string.Format("{0:C}", price); 中國貨幣樣式
<system.web>
      <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-cn" uiCulture="zh-cn" />
</system.web>
顯示爲 ¥3,000.10

{0:c}  或 string.Format("{0:C}", price); 美國貨幣樣式
<system.web>
      <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>
顯示爲 $3,000.10

-------------------------------------------------

1、DataBinder.Eval的基本格式 在綁定數據時常常會用到這個句程序:或者 今天又學到一種,並且微軟也說這種方法的效率要比以上兩種高。 頗有用的,這樣能夠在前臺頁面作好多事情了。 還要記住要這樣用必需要在前臺頁面導入名稱空間System.Data,不然會生成錯誤信息。 這種用法其實和是一個道理。 Text='' 這樣的方法是最快的 Text='' 也能夠綁定方法,但方法要是public的 Text='' 還能夠鏈接多個字段 關鍵是Container這個東西,它比較神祕。它的名稱空間是System.ComponentModel。對於它我還須要進一步理解。 2、DataBinder.Eval實現判斷選擇 cs裏定義DGFormatSex方法 protected string DGFormatSex(string xb) { if(xb == "1") return "男"; else return "女"; } DataBinder.Eval用法範例 DataBinder.Eval用法範例 //顯示二位小數 // //{0:G}表明顯示True或False // // // //轉換類型 ((string)DataBinder.Eval(Container, "DataItem.P_SHIP_TIME_SBM8")).Substring(4,4) {0:d} 日期只顯示年月日 {0:yyyy-mm-dd} 按格式顯示年月日 {0:c} 貨幣樣式

 

from http://blog.csdn.net/denuvead/article/details/2330760

相關文章
相關標籤/搜索