一、數據綁定語法
數據綁定表達式包含在“<%#”和“%>”分隔符之內,並使用Eval方法和Bind方法。Eval方法用於定義單向(只讀)綁定,Bind方法用於定義雙向(可更新)綁定。
語法格式:<%#Eval("字段名") %>
<%#Bind("字段名") %>
<%#綁定表達式 %> 不僅可以綁定數據源,而且可以綁定簡單屬性、集合、表達式,甚至從方法調用返回結果。
二、數據綁定表達式出現的位置
1.可以將數據綁定表達式包含在服務器控件或者普通的HTML元素的開始標記中,作為屬性名和屬性值對的值。eg:
<asp:TextBox ID="TextBox1" runat="server" Text='<%#數據綁定表達式%>'></asp:TextBox>
此時數據的綁定表達式可以是一個變量,也可以是一個帶返回值的C#方法,也可以是某個控件的某個屬性的值,也可以是C#對象的某個字段或者屬性的值等。當然也可以直接就是一個字符串。
如果此時的數據綁定表達式是Eval("數據庫中某個表的某個字段")等,那么必須把TextBox1放在某個循環顯示的控件的模板中才正確,否則會提示:“Eval()、XPath()和Bind()這類數據綁定方法只能在數據綁定控件的上下文中使用",意思是要把TextBox1放在像Repeater、DataList、GridView這樣的控件的模板中。
2.數據綁定表達式可以包含在頁面中的任何位置。
如果此時的數據綁定表達式是Eval("數據庫中某個表的某個字段")等,那么必須把<%#綁定表達式1 %>、<%#綁定表達式2 %>...放在像Repeater、DataList、GridView這樣的控件的模板中。
3.可以將數據綁定表達式包含在JavaScript代碼中,從而實現在JavaScript中調用C#的方法。
三、數據綁定表達式類型
1.綁定變量。變量可以作為數據源來提供數據。注意,這個變量必須為公有字段或受保護字段,即訪問修飾符為public或protected。eg:<%#變量名%>
2.綁定服務器控件的屬性值,可以是服務器控件的屬性值。
3.綁定方法。有返回值的方法可以作為數據源來提供數據。語法格式為:<%# 方法名(參數表)%>
4.綁定數組對象。數據對象可以作為數據源來提供數據。語法格式為:<%# 數據名 %>
5.綁定集合或列表列表控件、GridView等服務器控件可用集合作為數據源,這些控件只能綁定到支持IEnumerable、ICollection或IListSource接口的集合上。常見的是綁定ArrayList、Hashtable、DataView和DataReader。語法格式為:<%# 集合名 %>
6.綁定表達式。語法格式為:<%# 表達式 %>
7.綁定數據表的字段。字段可以是用Eval取得的數據表的字段,相當於數據庫中某個表或者視圖中的一行記錄,而一行可以有多列。
注意:如果數據綁定表達式作為屬性的值,只要數據綁定表達式中沒有出現雙引號,那么<%# 數據綁定表達式 %>的最外層用雙引號或者單引號都可以。如果數據綁定表達式中出現雙引號,則<%# 數據綁定表達式 %>的最外層最好要用單引號。