1.可以將數據綁定表達式包含在服務器控件或者普通的html元素的開始標記中屬性名/屬性值對的值側。
2.數據綁定綁定表達式包含在在頁面中的任何位置。
3.可以將數據綁定表達式包含在Javascript代碼中,從而實現在Javascript中調用C#或者VB.NET的方法。
數據綁定表達式必須包含在<%#和%>字符之間。格式如下:
以下為引用的內容: <tagprefix:tagnameproperty='<%#data-bindingexpression%>'runat="server"/> |
或者如下:此時只需要把屬性DataSource='<%# 數組名%>'。
4.可以是一個表達式
例如:Person是一個對象,Name和City是它的2個屬性,則數據綁定表達式可以這樣寫:
以下為引用的內容: <%#(Person.Name + " " + Person.City)%> |
5.可以是一個方法
例如:<%#GetUserName()%>。GetUserName()是一個已經定義的C#方法,一般要求有返回值。
6,可以是用Eval,DateBind.Eval取得的數據表的字段,這個是最常見的了,不再舉例。
注意:如果數據綁定表達式作為屬性的值,只要數據綁定表達式中沒有出現雙引號,那么<%#數據綁定表達式%>的最外層用雙引號或者單引號都可以。如果數據綁定表達式中出現雙引號,則<%#數據綁定表達式%>的最外層最好要用單引號。
與數據庫有關的數據綁定表達式的常用方法?
以下為引用的內容: <%#DataBind.Eval(Container.DataItem,"字段名")%> <%#DataBind.Eval(Container.DataItem,"字段名","{0:c}")%> |
還有2種不常用的:
以下為引用的內容: <%# DataBinder.Eval(Container,"DataItem.字段名")%> <%# DataBinder.Eval(Container,"DataItem.字段名",{0:c})%> |
Container.DataItem相當于數據庫中某個表中的一行記錄,而一行可以有很多列。
最后一個參數和 String.Format的形式一樣。例如c代表貨幣,p代表百分號,d代表短日期格式顯示,f代表浮點數現實,f3代表小數點后三為,一次類推。
使用三目運算符?:的例子:
以下為引用的內容: <%#DataBinder.Eval(Container.DataItem,"字段名").ToString().Trim().Length>16?DataBinder.Eval(Container.DataItem,"字段名").ToString().Trim().Substring(0,16):DataBinder.Eval(Container.DataItem,"字段名").ToString().Trim()%> |
以下為引用的內容: <%#Eval("字段名")%> <%#Eval("字段名","{0:c}")%> |
.NET 2.0新出現的一個方法。和DataBind.Eval()等價。
最后一個參數和 String.Format的形式一樣。例如c代表貨幣,p代表百分號,d代表短日期格式顯示,f代表浮點數現實,f3代表小數點后三位,一次類推。
使用三目運算符的例子:
以下為引用的內容: <%#(Eval("性別")).ToString() =="True"?"男":"女"%> |
性別字段類型為:是/否(Access),bit(sql server)
使用方法調用的例子:
以下為引用的內容: <%# GetUserPhoto(Eval("PhotoPath")) %> |
GetUserPhoto()的定義:
以下為引用的內容: <%#((DataRowView)Container.DataItem)["字段名"] %> <%# string.Format("{0:c}", ((DataRowView)Container.DataItem)["字段名"])%> |
用String.Format方法設定字段的顯示樣式。例如c代表貨幣,p代表百分號,d代表短日期格式顯示,f代表浮點數現實,f3代表小數點后三為,一次類推。
類型轉換例子:<%# (int)((DataRowView)Container.DataItem)["字段名1"]*(int)((DataRowView)Container.DataItem)["字段名2"]%> 意思是2個字節相乘。
上面三種綁定方法的效率:Eval方法執行時候會調用DataBinder.Eval方法,DataBinder.Eval方法在運行時使用反射執行后期綁定計算,會導致性能明顯下降。所以會導致性能明顯下降。所以三者中<%#((DataRowView)Container.DataItem)["字段名"] %>的性能最好。
以下為引用的內容: <%#data-bindingexpression%> |
上一篇 網站美觀和用戶體驗的矛盾與不矛盾