GridView、DataGrid、DataList、Repeater、ListView、DetailsView、FormView 的區別

GridView、DataGrid、DataList、Repeater、ListView、DetailsView、FormView 的區別

GridView控制項

特徵:以「table」形式顯示資料,可以進行排序、分頁、翻閱資料及編輯和刪除「單個記錄」功能。

簡要特徵:一行一條記錄,就像新聞列表一樣;帶分頁功能。

DetailsView 控制項

特徵:一次呈現一列的記錄,並提供翻閱多條記錄以及插入、更新和刪除記錄的功能。

簡要特徵:一列記錄,一行一個字段;帶分頁功能。

FormView 控制項
特徵:FormView 控制項與 DetailsView 控制項類似,它一次呈現資料源中的一條記錄,並提供翻閱多條記錄以及插入、更新和刪除記錄的功能。不過,FormView 控制項與 DetailsView 控制項之間的差別在於:DetailsView 控制項使用基於表格的佈局,在這種佈局中,資料記錄的每個欄位都顯示為控制項中的一行。而 FormView 控制項則不指定用於顯示記錄的預定義佈局。實際上,您將創建包含控制項的範本,以顯示記錄中的各個欄位。該範本包含用於設置表單佈局的格式、控制項和綁定運算式。

簡要特徵:一列記錄,自由定制;帶分頁功能。

ListView 控制項

特徵:這個控制項既可實現像GridView 一樣的效果,也可實現像DataList 一樣的效果(怪不得名字叫ListView),這東西應用起來也要複雜些。要點是:LayoutTemplate 下面必須有一個服務器端控件,即runat="server",其ID 必須為itemPlaceholder(除非更改ListView 的ItemPlaceholderID),注意大小寫,ItemTemplate 模板中的內容輸出時就是插入到itemPlaceholder 的。

但ListView分頁卻不是那麼複雜,在LayoutTemplate模板中拖入一個DataPager控件,指定好DataPager的Fields就可以了。但DataPager並不會向DataSource發送startRowIndex和maximumRows這兩個參數,也就是說這種分頁是取出所有的記錄,只是顯示部分,並不是一種高效的分頁。

簡要特徵:自由定制,功能強大;應用複雜;分頁功能需要手寫。

DataList 控制項

特徵DataList控制項以「table」的形式呈現數據,通過該控件,您可以使用不同的佈局來顯示數據記錄,例如,將數據記錄排成列或行的形式。您可以對DataList控件進行配置,使用戶能夠編輯或刪除表中的記錄。(DataList控件不使用數據源控件的數據修改功能;您必須自己提供此代碼。)DataList控件與Repeater控件的不同之處在於:DataList控件將項顯式放在HTML表中,而Repeater控件則不然。

簡要特徵:一行可以有多條記錄,就像圖片列表一樣;分頁功能需要手寫。

Repeater 控制項

特徵:Repeater控制項使用數據源返回的一組記錄呈現只讀列表。與FormView控件類似,Repeater控件不指定內置佈局。您可以使用模板創建Repeater控件的佈局。

簡要特徵:自由定制;分頁功能需要手寫。

來源:http://www.cftea.com/c/2008/01/KFCN9M57SSRDKX6W.asp