1. GridView 控件
GridView 控件用于顯示表中的數(shù)據(jù)。通過使用 GridView 控件,您可以顯示、編輯、刪除、排序和翻閱多種不同的數(shù)據(jù)源(包括數(shù)據(jù)庫、XML 文件和公開數(shù)據(jù)的業(yè)務對象)中的表格數(shù)據(jù)。
顯示表格數(shù)據(jù)是軟件開發(fā)中的一個周期性任務。ASP.NET 提供了許多工具來在網(wǎng)格中顯示表格數(shù)據(jù),例如 GridView 控件。通過使用 GridView 控件,您可以顯示、編輯和刪除多種不同的數(shù)據(jù)源(例如數(shù)據(jù)庫、XML 文件和公開數(shù)據(jù)的業(yè)務對象)中的數(shù)據(jù)。
可以使用 GridView 來完成以下操作:
通過數(shù)據(jù)源控件自動綁定和顯示數(shù)據(jù)。
通過數(shù)據(jù)源控件對數(shù)據(jù)進行選擇、排序、分頁、編輯和刪除。
另外,還可以通過以下方式自定義 GridView 控件的外觀和行為:
指定自定義列和樣式。
利用模板創(chuàng)建自定義用戶界面 (UI) 元素。
通過處理事件將自己的代碼添加到 GridView 控件的功能中。
1.1 使用 GridView 控件進行數(shù)據(jù)綁定
GridView 控件提供了兩個用于綁定到數(shù)據(jù)的選項:
使用 DataSourceID 屬性進行數(shù)據(jù)綁定,此選項讓您能夠將 GridView 控件綁定到數(shù)據(jù)源控件。建議使用此方法,因為它允許 GridView 控件利用數(shù)據(jù)源控件的功能并提供了內(nèi)置的排序、分頁和更新功能。
使用 DataSource 屬性進行數(shù)據(jù)綁定,此選項使您能夠綁定到包括 ADO.NET 數(shù)據(jù)集和數(shù)據(jù)讀取器在內(nèi)的各種對象。此方法需要為所有附加功能(如排序、分頁和更新)編寫代碼。
當使用 DataSourceID 屬性綁定到數(shù)據(jù)源時,GridView 控件支持雙向數(shù)據(jù)綁定。除可以使該控件顯示返回的數(shù)據(jù)之外,還可以使它自動支持對綁定數(shù)據(jù)的更新和刪除操作。
1.2 在 GridView 控件中設置數(shù)據(jù)顯示格式
可以指定 GridView 控件的行的布局、顏色、字體和對齊方式??梢灾付ㄐ兄邪奈谋竞蛿?shù)據(jù)的顯示。另外,可以指定將數(shù)據(jù)行顯示為項目、交替項、選擇的項還是編輯模式項。GridView 控件還允許指定列的格式。
1.3 使用 GridView 控件編輯和刪除數(shù)據(jù)
默認情況下,GridView 控件在只讀模式下顯示數(shù)據(jù)。但是,該控件還支持一種編輯模式,在該模式下控件顯示一個包含可編輯控件(如 TextBox 或 CheckBox 控件)的行。您還可以對 GridView 控件進行配置以顯示一個 Delete 按鈕,用戶可單擊該按鈕來刪除數(shù)據(jù)源中相應的記錄。
GridView 控件可對其關聯(lián)數(shù)據(jù)源自動執(zhí)行編輯和刪除操作,使您無需編寫代碼即可啟用編輯行為?;蛘?,也可以以編程方式控制編輯和刪除數(shù)據(jù)的過程(如在 GridView 控件綁定到只讀數(shù)據(jù)源控件的情況下)。
您可以使用模板對當某個行處于編輯模式時使用的輸入控件進行自定義。
1.4 GridView 排序功能
GridView 控件支持在不需要任何編程的情況下通過單個列排序。通過使用排序事件以及提供排序表達式,您可以進一步自定義 GridView 控件的排序功能。
1.5 GridView 分頁功能
GridView 控件提供一種簡單的分頁功能??梢酝ㄟ^使用 GridView 控件的 PagerTemplate 屬性來自定義 GridView 控件的分頁功能。
適用場景
GridView 控件一般適用于以表的形式顯示規(guī)則的二維關系數(shù)據(jù)。例如用于顯示站點下所有用戶的列表。
2. DataList 控件
DataList Web 服務器控件以可自定義的格式顯示數(shù)據(jù)庫行的信息。顯示數(shù)據(jù)的格式在創(chuàng)建的模板中定義。可以為項、交替項、選定項和編輯項創(chuàng)建模板。標頭、腳注和分隔符模板也用于自定義 DataList 的整體外觀。通過在模板中包括 Web 服務器控件,可將列表項連接到代碼,這些代碼使用戶得以在顯示、選擇和編輯模式之間進行切換。
DataList 與GridView不同,必須通過自定義的template 來顯示數(shù)據(jù)項。DataList 與 GridView相比不支持排序,分頁功能。
適用場景
DataList 一般適用于顯示“單列多行”關系的數(shù)據(jù),例如用于顯示產(chǎn)品列表,每一個ListItem顯示一件產(chǎn)品的信息,你可以為ListItem 定義自己需要的格式。
3. Repeater 控件
Repeater Web 服務器控件是一個容器控件,它使您可以從頁的任何可用數(shù)據(jù)中創(chuàng)建出自定義列表。Repeater 控件不具備內(nèi)置的呈現(xiàn)功能,這表示用戶必須通過創(chuàng)建模板為 Repeater 控件提供布局。當該頁運行時,Repeater 控件依次通過數(shù)據(jù)源中的記錄,并為每個記錄呈現(xiàn)一個項。
Repeater 控件與上述2 個控件相比顯得最為單薄,Repeater 一般用于只讀的數(shù)據(jù),對數(shù)據(jù)呈現(xiàn)的列表不具備編輯,排序,分頁等功能。
適用場景
功能非常單薄,它使用數(shù)據(jù)源返回的一組記錄呈現(xiàn)只讀列表。
4.DetailsView 控件
DetailsView 控件一次呈現(xiàn)一條表格形式的記錄,并提供翻閱多條記錄以及插入、更新和刪除記錄的功能。DetailsView 控件通常用在主/詳細信息方案中,在這種方案中,主控件(如 GridView 控件)中的所選記錄決定了 DetailsView 控件顯示的記錄。
5.FormView 控件
FormView 控件與 DetailsView 控件類似,它一次呈現(xiàn)數(shù)據(jù)源中的一條記錄,并提供翻閱多條記錄以及插入、更新和刪除記錄的功能。不過,F(xiàn)ormView 控件與 DetailsView 控件之間的差別在于:DetailsView 控件使用基于表格的布局,在這種布局中,數(shù)據(jù)記錄的每個字段都顯示為控件中的一行。而 FormView 控件則不指定用于顯示記錄的預定義布局。實際上,您將創(chuàng)建包含控件的模板,以顯示記錄中的各個字段。該模板包含用于設置窗體布局的格式、控件和綁定表達式。