DataBinder.Eval的基本格式 DataBinder.Eval(Container.DataItem,"XXX","{0}") <%# DataBinder.Eval(Container.DataItem,"xxxx")%>或者<%# DataBinder.Eval(Container,"DataItem.xxxx")%> 還有一種據說微軟說效率很高的方式 <%# ((DataRowView)Container.DataItem)["xxxx"]%> 但是這種方式必須要在前台頁面匯入名稱空間System.Data,否則會建置錯誤資訊<%@ Import namespace="System.Data" %> DataBinder.Eval的基本格式 DataBinder.Eval(Container.DataItem,"XXX","{0}") <%# DataBinder.Eval(Container.DataItem,"xxxx")%> <%# DataBinder.Eval(Container,"DataItem.xxxx")%> 問題1、他們是有什麼不同? 問題2、他們是否可以相互替換? 問題3、DataBinder.Eval(Container.DataItem,"") 這個Container和DataItem分別都是什嗎? 答1:Eval是對資料的唯讀綁定,被綁定的子控制項所屬的父控制項(比如GridView)不能用此子控制項接收使用者輸入的修改。Bind是雙向繫結,所謂雙向,是資料來源---顯示介面的雙向數 據流動,即讀/寫。 答2:Eval可以替換為Bind,但會降低效能;反之不能替換。 答3:Container即容器,指父控制項;DataItem指父控制項所繫結資料源的當前行,不是欄位。 如果只是顯示值<%#Eval("欄位名")%>就可以了. 如果是要修改值<%#Bind("欄位名")%>就可以了. 以下兩種的顯示是相同的 <%# Eval("name") %> <%# DataBinder.Eval(Container.DataItem,"sex") %> |