---
# System prepended metadata

title: 閱讀技術文章_.Net(WebForm)_那些資料控制向的區別_GridView、DataGrid、DataList、Repeater、ListView、DetailsView、FormView
tags: [技術文章, .NET, C#, web form]

---

# 閱讀技術文章_.Net(WebForm)_那些資料控制向的區別_GridView、DataGrid、DataList、Repeater、ListView、DetailsView、FormView

----
###### tags: `技術文章` `web form` `.NET` `C#`

感激所有願意分享知識的人,筆記內成就皆不在我

---
[GridView、DataGrid、DataList、Repeater、ListView、DetailsView、FormView 的區別](https://dotblogs.com.tw/codeing_learning_diary/2019/05/02/234824)

[詳解ASP.NET數據綁定操作中Repeater控件的用法](https://www.itread01.com/articles/1475901015.html)

---

因為我個人很常疑問, 這些資料顯示的控制向
為什麼分這麼多種???
非常不好記!!!!
裡面屬性方法都不完全相同, 有些可用, 換一種用不可用了

所以乾脆寫(紀錄)下來

> Repeater自由度最高 分頁需手寫
> GridView可以直接綁定數據 可做為Degug的方法

<br />
<br />
<br />

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

### GridView控制項

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

簡要特徵：一行一條記錄，就像新聞列表一樣；帶分頁功能。

<br />
<br />
<br />

### DetailsView 控制項

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

簡要特徵：一列記錄，一行一個字段；帶分頁功能。

<br />
<br />
<br />

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

簡要特徵：一列記錄，自由定制；帶分頁功能。
> 修正 formview是基于html布局，不是表格布局

<br />
<br />
<br />

### ListView 控制項

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

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

簡要特徵：自由定制，功能強大；應用複雜；分頁功能需要手寫。

<br />
<br />
<br />

### DataList 控制項

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

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

<br />
<br />
<br />

### Repeater 控制項

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

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

---
---

## 數據綁定操作中Repeater控件的用法

![](https://i.imgur.com/WPoYGGp.png)


![](https://i.imgur.com/A5Cc0yp.png)

### 綁定控制項之Repeater
.NET封裝了多種數據綁定控制項
如GridView、DataList等但該篇文章將會從Repeater入手，因為Repeater只提供了基本的數據綁定模板，沒有內置其它分頁等功能，所以它是最原始的數據綁定控制項，只要能夠熟練運用Repeater控制項其它的綁定控制項也就很簡單了。

1. Repeater簡介
> Repeater 是基本模板化數據列表。

它不像GridView控件一樣能夠可視化的設計格式或樣式，因此開發時在控件模板中必須顯式聲明所有格式、格式和樣式標記。
另外Repeater控件沒有內置選擇、排序、編輯、分頁等功能，它只提供了基本的數據綁定，但是它為開發人員提供了Itemcommand 事件，該事件支持在控件中收發命令。
想要綁定數據，模板是必不可少的，Repeater控件同樣支持數據模板，而且還可以在模板中添加想要的標簽，它主要用法如圖


>> 每個 Repeater 控件必須定義 ItemTemplate。

2. 控件使用技巧
上文講解了Repeater基本的使用方法及它的一些基本特性，接下來做幾個經典的示例來運用Repeater控件。

> 1. 數據綁定之刪除、編輯
該示例將會使用Asp.net的前臺和後臺結合來實現顯示數據，並能夠編輯和刪除數據。
刪除頁面：

![](https://i.imgur.com/fKDqmue.png)
![](https://i.imgur.com/2k8zwSF.png)
![](https://i.imgur.com/3F737d9.png)
