Eval與DataBinder.Eval的區別

來源:互聯網
上載者:User
Eval與DataBinder.Eval的區別2009-02-20 15:35

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") %>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.