DataGrid、DataList或Repeater的一些討論(1)

WEB開發自從有了基於腳本的WEB編程技術(如ASP)以來,經歷了一個漫長的過程。通過使用微軟的ASP.Net技術,傳統的ASP中大量的、單調乏味的、重複性的編程工作成爲了歷史。例如,象大多數ASP程序員所知的,在ASP中顯示數據庫內容所需要的過程:   建立數據庫連接   用SQL查詢裝載ADO數據集   顯示所需要的任何HTML代碼   遍歷數據集中的記錄     輸出記錄字段值及相關的HTML     移向下一條記錄   循環   顯示所需要的HTML代碼   又如,爲了在表格中顯示記錄集的內容,我們需要輸出一個
標籤和
標籤結尾。   在傳統的ASP中使用的這種方法有一個主要的缺點:HTML代碼與ASP源代碼不得不糾纏在一起。對於那些也許並不理解程序設計的頁面設計者或圖形藝術家來說,想要更改HTML內容無疑是一場災難。另外,代碼的產生量也是驚人的,因爲我們不僅需要從數據庫中取得數據,還需要使之可視化。   好在,ASP.Net提供了三個數據控件,使得原本在ASP中繁雜的工作變得簡單。這三個控件屬於數據Web控件,分別是DataGrid,DataList和Repeater。如果你對ASP.Net數據庫編程有所瞭解的話,你至少應該有使用其中一種控件的經驗。大多數情況下,我們從學習使用DataGrid開始,因爲它的功能相對完整(數據顯示、分頁、編輯)並相對簡單。然而,DataGrid並非總是正確的選擇。   本文將分別論述每個數據控件不同於其它數據控件的特點,以及由此帶來的優缺點。正因爲每種數據控件都有其自身的缺陷,因此在程序設計中並不存在最完美的選擇。你必須權衡三種控件的優缺點並決定哪一種更加適合你的程序。   爲了幫助比較,在對每個控件進行論述時,我們會專注於三個特性:可用性(從頁面訪問者的角度)、開發時間和性能。我們首先描述一下這三種控件的共性,然後分別深入地討論三種控件的特點,每種控件如何實現以及如何體現可用性、開發時間和性能。 [數據控件(Data Web Controls)的共同點]   在我們討論三種控件各自特性之前,有必要先看一看它們之間的共同點。一般來說,從編程流程來看,最顯著的共同點就是,這三種控件都是用來顯示數據的。另一個共同點是需要一個數據綁定的代碼來將數據與控件綁定。這個過程只需要兩行代碼:      dataWebControlID.DataSource = someDataSource   dataWebControlID.DataBind()      一般情況下,someDataSource對象是指數據控件的數據源屬性,可以是DataSet,SqlDataReader,OleDbDataReader或一組數據(如數組、數組列表或其它的屬於System.Collection名空間的類)。不過,任意實現IEnumerable接口的對象也可以被綁定在數據控件上。   DataBind()方法遍歷一個特定的DataSource中的記錄,並對其中的每條記錄,建立一個條目並對應數據控件的Item集。數據控件中的每個條目將成爲一個類的實例。這個類因數據控件的不同而有所區別。例如,DataGrid中的每個條目是DataGridItem類的一個實例,而Repeater中的條目則是RepeaterItem類的一個實例。   之所以使用不同的類來實例化不同數據控件的條目,是因爲不同的數據控件將會使用不同的方式顯示數據及相應的HTML代碼。例如,DataGridItem類繼承自TableRow類,也就是說,每個DataGridItem的實例或多或少地可以看成一個表格中的一行。這是因爲DataGrid被設計成可以藉助HTML中的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章