天天看點

資料綁定伺服器控件的 幾種方式

資料綁定伺服器控件

資料綁定伺服器控件的 幾種方式

   資料綁定概述和文法

資料綁定伺服器控件的 幾種方式

   綁定到簡單屬性

資料綁定伺服器控件的 幾種方式

   綁定到集合和清單

資料綁定伺服器控件的 幾種方式

   綁定表達式或方法

資料綁定伺服器控件的 幾種方式

   DataBinder.Eval()

資料綁定伺服器控件的 幾種方式

   本節小結

資料綁定概述和文法

ASP.NET 引入了新的聲明性資料綁定文法。這種非常靈活的文法允許開發人員不僅可以綁定到資料源,而且可以綁定到簡單屬性、集合、表達式甚至是從方法調用傳回的結果。下表顯示了新文法的一些示例。

簡單屬性 Customer: <%# custID %>
集合 Orders: <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
表達式 Contact: <%# ( customer.First Name + " " + customer.LastName ) %>
方法結果 Outstanding Balance: <%# GetBalance(custID) %>

盡管該文法看起來與 ASP 的 Response.Write 快捷方式 <%= %> 相似,但其行為完全不同。ASP Response.Write 快捷方式文法在處理頁時計算,而 ASP.NET 資料綁定文法僅在調用 DataBind 方法時計算。

DataBind 是頁和所有伺服器控件的方法。當在父控件上調用 DataBind 時,它級聯到該控件的所有子控件。例如,

DataList1.DataBind()

将是以對 DataList 模闆中的每一控件調用 DataBind 方法。在頁上調用 DataBind —

Page.DataBind()

或隻是

DataBind()

— 會導緻計算頁上的所有資料綁定表達式。通常從 Page_Load 事件調用 DataBind,如下例所示。

<script language="JavaScript" type="text/javascript"> function doClick(index, numTabs, id) { document.all("tab" + id, index).className = "tab"; for (var i=1; i < numTabs; i++) { document.all("tab" + id, (index + i) % numTabs).className = "backtab"; } document.all("code" + id, index).style.display = ""; for (var j=1; j < numTabs; j++) { document.all("code" + id, (index + j) % numTabs).style.display = "none"; } } </script>

protected void Page_Load(Object Src, EventArgs E) {
    DataBind();
}
      
Protected Sub Page_Load(Src As Object, E As EventArgs)
    DataBind()
End Sub
      
protected function Page_Load(Src:Object, E:EventArgs) : void {
    DataBind();
}
      
C# VB JScript

如果綁定表達式在運作時計算為預期的資料類型,則可以在 .aspx 頁的聲明節中的幾乎任何位置使用綁定表達式。上面的簡單屬性、表達式和方法示例在計算時向使用者顯示文本。這些情況下,資料綁定表達式必須計算為 String 類型的值。在集合示例中,資料綁定表達式計算為 ListBox 的 DataSource 屬性的有效類型值。您可能會發現有必要轉換綁定表達式中的類型值以産生所需的結果。例如,如果

count

是整數:

Number of Records: <%# count.ToString() %>

綁定到簡單屬性

ASP.NET 資料綁定文法支援綁定到公共變量、頁的屬性和頁上其他控件的屬性。

下面的示例說明如何綁定到公共變量和頁上的簡單屬性。注意這些值在

DataBind()

調用前初始化。

資料綁定伺服器控件的 幾種方式
C# DataBind1.aspx

[ 運作示例] | [ 檢視源代碼]

源碼

資料綁定伺服器控件的 幾種方式

< html >

資料綁定伺服器控件的 幾種方式

< head >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < script  language ="C#"  runat ="server" > ...

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        void Page_Load(Object sender, EventArgs e) ...{

資料綁定伺服器控件的 幾種方式

            Page.DataBind();

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        string custID...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

            get ...{

資料綁定伺服器控件的 幾種方式

                return "ALFKI";

資料綁定伺服器控件的 幾種方式

            }

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        int orderCount...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

            get ...{

資料綁定伺服器控件的 幾種方式

                return 11;

資料綁定伺服器控件的 幾種方式

            }

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ script >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ head >

資料綁定伺服器控件的 幾種方式

< body >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < h3 >< font  face ="宋體" > 到頁屬性的資料綁定 </ font ></ h3 >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < form  runat =server >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        客戶: < b > <% ... # custID  %> </ b >< br >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        未結的訂單: < b > <% ... # orderCount  %> </ b >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ form >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ body >

資料綁定伺服器控件的 幾種方式

</ html >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

下面的示例說明如何綁定到另一控件的屬性。

資料綁定伺服器控件的 幾種方式
C# DataBind2.aspx
[ 運作示例] | [ 檢視源代碼]
資料綁定伺服器控件的 幾種方式

< html >

資料綁定伺服器控件的 幾種方式

< head >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < script language = " C# "  runat = " server " >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         void  SubmitBtn_Click(Object sender, EventArgs e)  ... {

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

          // 僅調用“Page.DataBind”,而不是從“StateList”

資料綁定伺服器控件的 幾種方式

          // 中顯式取出變量,然後操作标簽控件。

資料綁定伺服器控件的 幾種方式

          // 這将計算頁内所有的 <%# %> 表達式

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

          Page.DataBind();

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ script >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ head >

資料綁定伺服器控件的 幾種方式

< body >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < h3 >< font face = " 宋體 " > 到另一個伺服器控件的屬性的資料綁定 </ font ></ h3 >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < form runat = server >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < asp:DropDownList id = " StateList "  runat = " server " >

資料綁定伺服器控件的 幾種方式

           < asp:ListItem > CA </ asp:ListItem >

資料綁定伺服器控件的 幾種方式

           < asp:ListItem > IN </ asp:ListItem >

資料綁定伺服器控件的 幾種方式

           < asp:ListItem > KS </ asp:ListItem >

資料綁定伺服器控件的 幾種方式

           < asp:ListItem > MD </ asp:ListItem >

資料綁定伺服器控件的 幾種方式

           < asp:ListItem > MI </ asp:ListItem >

資料綁定伺服器控件的 幾種方式

           < asp:ListItem > OR </ asp:ListItem >

資料綁定伺服器控件的 幾種方式

           < asp:ListItem > TN </ asp:ListItem >

資料綁定伺服器控件的 幾種方式

           < asp:ListItem > UT </ asp:ListItem >

資料綁定伺服器控件的 幾種方式

         </ asp:DropDownList >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < asp:button Text = " 送出 "  OnClick = " SubmitBtn_Click "  runat = server />

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < p >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        標明的州: < asp:label text = ' <%# StateList.SelectedItem.Text %> '  runat = server />

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ form >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ body >

資料綁定伺服器控件的 幾種方式

</ html >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

像 DataGrid、ListBox 和 HTMLSelect 這樣的清單伺服器控件将集合用作資料源。下面的示例說明如何綁定到通常的公共語言運作庫集合類型。這些控件隻能綁定到支援 IEnumerable、ICollection 或 IListSource 接口的集合。最常見的是綁定到 ArrayList、Hashtable、DataView 和 DataReader。

下面的示例說明如何綁定到 ArrayList。

資料綁定伺服器控件的 幾種方式
C# DataBind3.aspx
[ 運作示例] | [ 檢視源代碼]
資料綁定伺服器控件的 幾種方式

< html >

資料綁定伺服器控件的 幾種方式

< head >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < script  language ="C#"  runat ="server" > ...

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        void Page_Load(Object Sender, EventArgs E) ...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

            if (!Page.IsPostBack) ...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

               ArrayList values = new ArrayList();

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

               values.Add ("IN");

資料綁定伺服器控件的 幾種方式

               values.Add ("KS");

資料綁定伺服器控件的 幾種方式

               values.Add ("MD");

資料綁定伺服器控件的 幾種方式

               values.Add ("MI");

資料綁定伺服器控件的 幾種方式

               values.Add ("OR");

資料綁定伺服器控件的 幾種方式

               values.Add ("TN");

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

               DropDown1.DataSource = values;

資料綁定伺服器控件的 幾種方式

               DropDown1.DataBind();

資料綁定伺服器控件的 幾種方式

            }

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        void SubmitBtn_Click(Object sender, EventArgs e) ...{

資料綁定伺服器控件的 幾種方式

           Label1.Text = "您選擇了:" + DropDown1.SelectedItem.Text;

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ script >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ head >

資料綁定伺服器控件的 幾種方式

< body >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < h3 >< font  face ="宋體" > 資料綁定 DropDownList </ font ></ h3 >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < form  runat =server >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < asp:DropDownList  id ="DropDown1"  runat ="server"   />

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < asp:button  Text ="送出"  OnClick ="SubmitBtn_Click"  runat =server />

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < p >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < asp:Label  id =Label1  font-name ="宋體"  font-size ="10.5pt"  runat ="server"   />

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ form >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ body >

資料綁定伺服器控件的 幾種方式

</ html >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

下面的示例說明如何綁定到 DataView。注意 DataView 類在 System.Data 命名空間中定義。

資料綁定伺服器控件的 幾種方式
C# DataBind4.aspx
[ 運作示例] | [ 檢視源代碼]
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

<% ... @ Import namespace="System.Data"  %>

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

< html >

資料綁定伺服器控件的 幾種方式

< head >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < script  language ="C#"  runat ="server" > ...

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        void Page_Load(Object sender, EventArgs e ) ...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

            if (!Page.IsPostBack) ...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                DataTable dt = new DataTable();

資料綁定伺服器控件的 幾種方式

                DataRow dr;

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                dt.Columns.Add(new DataColumn("整數值", typeof(Int32)));

資料綁定伺服器控件的 幾種方式

                dt.Columns.Add(new DataColumn("字元串值", typeof(string)));

資料綁定伺服器控件的 幾種方式

                dt.Columns.Add(new DataColumn("日期時間值", typeof(DateTime)));

資料綁定伺服器控件的 幾種方式

                dt.Columns.Add(new DataColumn("布爾值", typeof(bool)));

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                for (int i = 1; i <= 9; i++) ...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                    dr = dt.NewRow();

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                    dr[0] = i;

資料綁定伺服器控件的 幾種方式

                    dr[1] = "項 " + i.ToString();

資料綁定伺服器控件的 幾種方式

                    dr[2] = DateTime.Now;

資料綁定伺服器控件的 幾種方式

                    dr[3] = (i % 2 != 0) ? true : false;

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                    dt.Rows.Add(dr);

資料綁定伺服器控件的 幾種方式

                }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                dataGrid1.DataSource = new DataView(dt);

資料綁定伺服器控件的 幾種方式

                dataGrid1.DataBind();

資料綁定伺服器控件的 幾種方式

            }

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ script >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ head >

資料綁定伺服器控件的 幾種方式

< body >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < h3 >< font  face ="宋體" > 到 DataView 的資料綁定 </ font ></ h3 >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < form  runat =server >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < asp:DataGrid  id ="dataGrid1"  runat ="server"

資料綁定伺服器控件的 幾種方式

          BorderColor ="black"

資料綁定伺服器控件的 幾種方式

          BorderWidth ="1"

資料綁定伺服器控件的 幾種方式

          GridLines ="Both"

資料綁定伺服器控件的 幾種方式

          CellPadding ="3"

資料綁定伺服器控件的 幾種方式

          CellSpacing ="0"

資料綁定伺服器控件的 幾種方式

          HeaderStyle-BackColor ="#aaaadd"

資料綁定伺服器控件的 幾種方式

         />

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ form >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ body >

資料綁定伺服器控件的 幾種方式

</ html >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

下面的示例說明如何綁定到 Hashtable。

資料綁定伺服器控件的 幾種方式
C# DataBind5.aspx
[ 運作示例] | [ 檢視源代碼]
資料綁定伺服器控件的 幾種方式

< html >

資料綁定伺服器控件的 幾種方式

< head >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < script  language ="C#"  runat ="server" > ...

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        void Page_Load(Object sender, EventArgs e) ...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

            if (!Page.IsPostBack) ...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                Hashtable h = new Hashtable();

資料綁定伺服器控件的 幾種方式

                h.Add ("鍵 1", "值 1");

資料綁定伺服器控件的 幾種方式

                h.Add ("鍵 2", "值 2");

資料綁定伺服器控件的 幾種方式

                h.Add ("鍵 3", "值 3");

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                MyDataList.DataSource = h;

資料綁定伺服器控件的 幾種方式

                MyDataList.DataBind();

資料綁定伺服器控件的 幾種方式

            }

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ script >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ head >

資料綁定伺服器控件的 幾種方式

< body >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < h3 >< font  face ="宋體" > 到哈希表的資料綁定 </ font ></ h3 >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < form  runat =server >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < asp:DataList  id ="MyDataList"  runat ="server"

資料綁定伺服器控件的 幾種方式

          BorderColor ="black"

資料綁定伺服器控件的 幾種方式

          BorderWidth ="1"

資料綁定伺服器控件的 幾種方式

          GridLines ="Both"

資料綁定伺服器控件的 幾種方式

          CellPadding ="4"

資料綁定伺服器控件的 幾種方式

          CellSpacing ="0"

資料綁定伺服器控件的 幾種方式

           >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

             < ItemTemplate >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                 <% ... # ((DictionaryEntry)Container.DataItem).Key  %>  :

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

                 <% ... # ((DictionaryEntry)Container.DataItem).Value  %>

資料綁定伺服器控件的 幾種方式

             </ ItemTemplate >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         </ asp:DataList >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ form >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ body >

資料綁定伺服器控件的 幾種方式

</ html >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

通常需要在綁定到頁或控件之前操作資料。下面的示例說明如何綁定到表達式和方法的傳回值。

資料綁定伺服器控件的 幾種方式
C# DataBind6.aspx
[ 運作示例] | [ 檢視源代碼]
資料綁定伺服器控件的 幾種方式

< html >

資料綁定伺服器控件的 幾種方式

< head >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < script language = " C# "  runat = " server " >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         void  Page_Load(Object Src, EventArgs E)  ... {

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

            if (!Page.IsPostBack) ...{

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

               ArrayList values = new ArrayList();

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

               values.Add (0);

資料綁定伺服器控件的 幾種方式

               values.Add (1);

資料綁定伺服器控件的 幾種方式

               values.Add (2);

資料綁定伺服器控件的 幾種方式

               values.Add (3);

資料綁定伺服器控件的 幾種方式

               values.Add (4);

資料綁定伺服器控件的 幾種方式

               values.Add (5);

資料綁定伺服器控件的 幾種方式

               values.Add (6);

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

               DataList1.DataSource = values;

資料綁定伺服器控件的 幾種方式

               DataList1.DataBind();

資料綁定伺服器控件的 幾種方式

            }

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

        String EvenOrOdd( int  number)  ... {

資料綁定伺服器控件的 幾種方式

            if ((number % 2) == 0)

資料綁定伺服器控件的 幾種方式

              return "偶數";

資料綁定伺服器控件的 幾種方式

            else

資料綁定伺服器控件的 幾種方式

              return "奇數";

資料綁定伺服器控件的 幾種方式

        }

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ script >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ head >

資料綁定伺服器控件的 幾種方式

< body >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < h3 >< font face = " 宋體 " > 到方法和表達式的資料綁定 </ font ></ h3 >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     < form runat = server >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

       < asp:DataList id = " DataList1 "  runat = " server "

資料綁定伺服器控件的 幾種方式

        BorderColor = " black "

資料綁定伺服器控件的 幾種方式

        BorderWidth = " 1 "

資料綁定伺服器控件的 幾種方式

        GridLines = " Both "

資料綁定伺服器控件的 幾種方式

        CellPadding = " 3 "

資料綁定伺服器控件的 幾種方式

        CellSpacing = " 0 "

資料綁定伺服器控件的 幾種方式

         >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

         < ItemTemplate >

資料綁定伺服器控件的 幾種方式

          數字值: <% # Container.DataItem  %>

資料綁定伺服器控件的 幾種方式

          偶 / 奇: <% # EvenOrOdd(( int ) Container.DataItem)  %>

資料綁定伺服器控件的 幾種方式

         </ ItemTemplate >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

       </ asp:datalist >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

     </ form >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

</ body >

資料綁定伺服器控件的 幾種方式

</ html >

資料綁定伺服器控件的 幾種方式
資料綁定伺服器控件的 幾種方式

DataBinder.Eval  

ASP.NET 架構提供了一種靜态方法,計算後期綁定的資料綁定表達式并且可選擇将結果格式化為字元串。DataBinder.Eval 很友善,因為它消除了開發人員為強迫将值轉換為所需的資料類型而必須做的許多顯式轉換。這在資料綁定模闆清單内的控件時尤其有用,因為通常資料行和資料字段的類型都必須轉換。

請看下面的示例,本例中整數将顯示為貨币字元串。使用标準的 ASP.NET 資料綁定文法,必須首先轉換資料行的類型以便檢索資料字段

IntegerValue

。下一步,将此作為參數傳遞給 String.Format 方法。

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

該文法可能比較複雜,難以記憶。相反,DataBinder.Eval 隻是一個具有三個參數的方法:資料項的命名容器、資料字段名和格式字元串。在像 DataList、DataGrid 或 Repeater 這樣的模闆清單中,命名容器始終是

Container.DataItem

。Page 是另一個可與 DataBinder.Eval 一起使用的命名容器。

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

格式字元串參數是可選的。如果省略它,則 DataBinder.Eval 傳回對象類型的值,如下例所示。

<%# (bool)DataBinder.Eval(Container.DataItem, "BoolValue") %>
      
<%# CType(DataBinder.Eval(Container.DataItem, "BoolValue"), Boolean) %>
      
<%# Boolean(DataBinder.Eval(Container.DataItem, "BoolValue")) %>
      
C# VB JScript

DataBinder.Eval 會對标準資料綁定文法帶來很明顯的性能損失,因為它使用後期綁定反射,注意這一點很重要。使用 DataBinder.Eval 時需謹慎,尤其是在不需要字元串格式化時。

資料綁定伺服器控件的 幾種方式
C# DataBind7.aspx
[ 運作示例] | [ 檢視源代碼]

本節小結

  1. ASP.NET 聲明性資料綁定文法使用 <%# %> 表示法。
  2. 可以綁定到資料源、頁或其他控件的屬性、集合、表達式以及從方法調用傳回的結果。
  3. 清單控件可以綁定到支援 ICollection、IEnumerable 或 IListSource 接口的集合,如 ArrayList、Hashtable、DataView 和 DataReader。
  4. DataBinder.Eval 是用于晚期綁定的靜态方法。它的文法可能比标準資料綁定文法簡單,但性能較低。

綁定到集合和清單

綁定表達式或方法