數據綁定控件,都有DataSource屬性,,用于指定數據源,。通常情況下,也是比較常用的就是數據源是數據表(DataTable),其實DataSource的范圍很廣,,我們可以在深入研究的同時,,改善我們的程序。
有的時候,,你在編程進入一定階段,進一步提升很困難的境況之下,,不妨回過頭來看看基礎的東西,,或許你會有新的受益,或許能夠真正的體會到孔夫子所謂的“溫故而知新”的真正內涵,。 常用的數據綁定控件有:Repeater,、DataList、GridView,、DetailsView等,在這里我拿Repeater來簡單說明問題,。 使用該屬性指定用來填充 Repeater 控件的數據源。DataSource 可以是任何 System.Collections.IEnumerable 對象,, 如用于訪問數據庫的 System.Data.DataView,、System.Collections.ArrayList、System.Collections.Hashtable,、數組或 IListSource 對象,。 常用的數據源: 一個 DataTable 一個 DataView 一個 DataSet 任何實現 IListSource 接口的組件 任何實現 IList 接口的組件 注意: 若要綁定到對象的強類型數組,該對象類型必須包含公共屬性,。
下面通過幾個簡單的實例來介紹DataSource的具體應用,。
<1>綁定DataTable,一般都是從數據庫取出數據,,然后直接進行綁定,具體的數據庫操作的邏輯不再提供,。想必大家都已經非常熟悉,。綁定DataView與這個類似。 Code
private void BindData() { //通過業(yè)務邏輯,,直接調用數據庫中的數據 DataTable nTable = getTable(); Repeater1.DataSource = nTable; Repeater1.DataBind(); } Html代碼 Repeater
<2>綁定Array,、ArrayList、List,、一維數組之類,,里面存儲簡單的數據。 ArrayList
private void BindData() { ArrayList list = new ArrayList(); list.Add("Jim"); list.Add("Tom"); list.Add("Bluce"); list.Add("Mary"); Repeater1.DataSource = list; Repeater1.DataBind(); }
Html適當改變 Code
<3>綁定Dictionary,、HashTable Dictionary
private void BindData() { Dictionary<string, int> dic = new Dictionary<string, int>(); dic.Add("Jim", 21); dic.Add("Tom", 26); dic.Add("Bluce", 33); dic.Add("Mary", 18); Repeater1.DataSource = dic; Repeater1.DataBind(); }
Html代碼 Code
<4>綁定對象集合,,IList等。這個很是有用,,在我們進行數據查詢的時候,,經常從數據庫取出數據,為了方便操作,,需要封裝成對象,,但是有的時候需要將這些對象以列表的形式顯示出來,一種解決方案:對象轉換為DataTable,,另一種就是直接調用數據庫,。這兩種方案,并不是很理想,。而這里直接將對象集合直接綁定到數據顯示控件,,給我指明一條出路。其實,,在PetShop4.0就是利用這一點,,綁定ICollection或者IList。簡單明了,。 一個簡單的用戶類,,包含兩個公共屬性。 User Code
綁定對象集合: IList
private void BindData() { User user1 = new User("Jim", 21); User user2 = new User("Tom",23); User user3 = new User("Bluce",33); User user4 = new User("Mary",18); IList<User> list = new List<User>(); list.Add(user1); list.Add(user2); list.Add(user3); list.Add(user4); Repeater1.DataSource = list; Repeater1.DataBind(); }
對應的Repeater綁定對象的公共屬性: Code
成長,,我們一起見證,!
|
|
來自: 悟靜 > 《.net和asp.net》