天天看點

databinder.eval綁定資料的時候顯示html标簽,資料綁定以及Container.DataItem幾種方式與使用方法分析...

靈活的運用資料綁定操作

綁定到簡單屬性:

綁定到集合:

綁定到表達式:

綁定到方法傳回值:

綁定到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。