靈活的運用資料綁定操作
綁定到簡單屬性:
綁定到集合:
綁定到表達式:
綁定到方法傳回值:
綁定到Hashtable:
綁定到ArrayList:
若數組裡裡放的是對象則可能要進行必要的轉換後再綁定如:
綁定到DataView,DataTable,DataSet:
或
要格式化則:
綁定到DataReader:
當然為了友善一般使用最多的就是DataBinder類的Eval方法了.隻是這樣對于同一時候要綁定大量的資料效率要低一些
在綁定資料時常常會用到這個句程式:或者
今天又學到一種,并且微軟也說這樣的方法的效率要比以上兩種高。
非常實用的,這樣能夠在前台頁面做好多事情了。
還要記住要這樣用必需要在前台頁面導入名稱空間System.Data,否則會生成錯誤資訊。
這樣的使用方法事實上和是一個道理。
綁定到DataSet、DataTable時:
綁定到DataReader時:
關鍵是Container這個東西,它比較神奇。它的名稱空間是System.ComponentModel。對于它我還須要進一步了解。
初學.NET,如今在看DataGrid控件,在ItemTemplate顯示資料時,
DataBinder.Eval(Container.DataItem,"Name")和Container.DataItem("Name")有什麼差别?
DataBinder是System.Web裡面的一個靜态類,它提供了Eval方法用于簡化資料綁定表達式的編寫,可是它使用的方式是通過Reflection等開銷比較大的方法來達到易用性,是以其性能并非最好的。而Container則根本不是不論什麼一個靜态的對象或方法,它是ASP.NET頁面編譯器在資料綁定事件處理程式内部聲明的局部變量,其類型是能夠進行資料綁定的控件的資料容器類型(如在Repeater内部的資料綁定容器叫RepeaterItem),在這些容器類中基本都有DataItem屬性,是以你能夠寫Container.DataItem,這個屬性傳回的是你正在被綁定的資料源中的那個資料項。假設你的資料源是DataTable,則這個資料項的類型實際是DataRowView。