程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> ASP.NET 2.0教程:Bind標簽和Eval標簽

ASP.NET 2.0教程:Bind標簽和Eval標簽

編輯:關於.NET

在ASP.Net 2.0中新引入的Bind和Eval標簽簡化了1.1中的DataBinder.Eval()的寫法. 多數情況下你不會注意到新增的這兩個TAG有什麼大的區別, 不過或許你會發現VS編輯器在設計界面下生成的代碼默認是使用Bind, 這裡主要可能有兩個原因:

  1. Eval在後端使用反射來綁定數據, 因此速度比較慢
  2. Eval通常是用於只讀的數據展示, Bind則支持與xxxDataSource這類控件的直接集成

也許Bind正是基於這種考慮, (自動綁定Update之類的方法), 類似下面這樣的做法將不會像我們所想的那樣工作:

   1: Text='<%# Bind("ApplicationName") + "-" + Bind("WorkItemId") %>'

最後顯示的結果是Bind(”WorkItemId”)的結果, 之前的結果包括連接字符串全部都被省略掉了. 可以想象由於Bind試圖要自動更新回數據庫(即便你沒有這麼做), 如果用於多個字段的綁定其自動更新機制可能會無法判斷. 因此這種情況下你就可以使用Eval來代替了. 當然, 如果要追求最好的性能, 就應該使用顯式的類型轉換, 如下:

   1: Text='<%# ((System.Data.DataRowVIEw)Container.DataItem)["ApplicationName"] 
   2: + "-" + ((System.Data.DataRowVIEw)Container.DataItem)["WorkItemId"] %>'

注:上述例子假設數據源為弱類型的DataSet

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved