Share via


DataList Web 伺服器控制項概觀

更新:2007 年 11 月

DataList Web 伺服器控制項會以可自訂的格式顯示資料庫資訊的資料列。顯示資料的格式是在您建立的樣板中所定義。您可以建立項目、替代項目、選取項目和編輯項目的樣板,也可以使用頁首、頁尾和分隔符號樣板來自訂 DataList 的整體外觀。藉由將 Button Web 伺服器控制項包含在樣板中,可以將清單項目連接到允許使用者在顯示、選取和編輯模式之間切換的程式碼。

這個主題包含:

  • 背景

  • 程式碼範例

  • 類別參考

背景

DataList Web 伺服器控制項會以您可使用樣板和樣式定義的格式來顯示資料。DataList 控制項對任何重複結構 (例如表格) 中的資料都相當有用。DataList 控制項能夠以不同的配置方式顯示資料列,例如以資料行或資料列排序。

注意事項:

DataList 控制項會使用 HTML 表格項目的方式在清單中呈現項目。若要精確控制用於呈現清單的 HTML,請使用 Repeater Web 伺服器控制項來取代 DataList 控制項。

您可以選擇性地設定 DataList 控制項來允許使用者編輯或刪除資訊。也可以自訂控制項來支援其他功能,例如選取資料列。

您可以透過包含 HTML 文字和控制項的方式來使用樣板定義資料項目的配置。例如,您可以使用項目中的 Label Web 伺服器控制項來顯示資料來源的欄位。

以下章節將介紹 DataList 控制項的功能。

將資料繫結至控制項

The DataList Web 伺服器控制項必須繫結至資料來源。最常見的資料來源是資料來源控制項,例如 SqlDataSourceObjectDataSource 控制項。此外,您可以將 DataList 控制項繫結至任何實作 IEnumerable 介面的類別,其中包含 ADO.NET 資料集 (DataSet 類別)、資料讀取器 (SqlDataReaderOleDbDataReader 類別),或是大部分集合。當繫結資料時,您就指定了整個 DataList 控制項的資料來源。當您將其他控制項加入至這個控制項時 (例如清單項目中的標籤或文字方塊),可以將子控制項的屬性繫結至目前資料項目中的欄位。

定義 DataList 項目的樣板

DataList 控制項中,您可以使用樣板來定義資訊的配置。

注意事項:

如需使用樣板的概觀,請參閱 ASP.NET Web 伺服器控制項樣板

下表會說明 DataList 控制項支援的樣板。

樣板屬性

描述

ItemTemplate

包含要為資料來源中的每個資料列,呈現一次的 HTML 項目和控制項。

AlternatingItemTemplate

包含要為資料來源中的每個其他的資料列,呈現一次的 HTML 項目和控制項。通常,您會使用這個樣板為替代資料列建立不同的外觀,例如與 ItemTemplate 屬性中指定顏色不同的背景顏色。

SelectedItemTemplate

包含當使用者在 DataList 控制項中選取某一項目時所要呈現的項目。通常,您會使用這個樣板搭配不同的背景或字型顏色,在視覺上區別已選取的資料列。您也可以顯示來自資料來源的其他欄位以展開項目。

EditItemTemplate

指定當項目在編輯模式時的配置。這個樣板通常會包含編輯控制項,例如 TextBox 控制項。

HeaderTemplateFooterTemplate

包含要在清單開頭和結尾呈現的文字和控制項。

SeparatorTemplate

包含要呈現在每一項目間的項目。常見的範例是一空白行 (使用 HR 項目)。

樣式

若要指定樣板項目的外觀,您可以設定樣板的樣式。例如,您可能會指定如下:

  • 在白色背景上,以黑色文字呈現項目

  • 在淺灰色背景上,以黑色文字呈現替代項目

  • 在黃色背景上,以粗體黑色文字呈現選取項目

  • 在淺藍色背景上,以黑色文字呈現要編輯的項目

每個樣板都支援本身的樣式物件,而您可在設計階段和執行階段設定其屬性。您可以使用的樣式如下:

如需詳細資訊,請參閱ASP.NET Web 伺服器控制項和 CSS 樣式

項目配置

DataList 控制項會使用 HTML 表格配置套用樣板的項目呈現方式。您可以控制用來呈現 DataList 項目的個別表格儲存格之順序、方向和資料行數。下列表格描述 DataList 控制項支援的配置選項。

配置選項

描述

流程配置

在流程配置中,清單項目是以內嵌 (Inline) 方式來呈現,和文書處理文件的方式一樣。

表格配置

在表格配置中,項目會呈現在 HTML 表格中。這會提供更多指定項目外觀的選項,因為它允許您設定表格儲存格的屬性,例如格線。如需詳細資訊,請參閱 HOW TO:指定 DataList Web 伺服器控制項中的流程或表格格式

垂直和水平配置

根據預設,DataList 控制項中的項目是以單一垂直資料行來顯示的。不過,您可以指定控制項包含一個以上的資料行。如果是這樣的話,您可以進一步指定項目是要垂直 (像報紙專欄一樣) 或水平 (像月曆的日期) 來排列。如需詳細資訊,請參閱 HOW TO:指定 DataList Web 伺服器控制項中的水平或垂直配置

資料行數目

無論 DataList 控制項中的項目是垂直或水平排列,您都可指定清單可有多少資料行。如此可以讓您控制 Web 網頁的呈現寬度,這麼做通常是為了減少使用者水平捲動的需要。

事件

DataList 控制項支援幾個事件。其中 ItemCreated 事件讓您能夠在執行階段自訂項目建立處理序。ItemDataBound 事件也能夠讓您自訂 DataList 控制項,但是要在資料可供檢視後才能進行。例如,如果您使用 DataList 控制項來顯示待辦清單,便可利用紅色文字來顯示過期項目、黑色文字來顯示完成項目、綠色文字則顯示其他工作。任一事件都可用來覆寫樣板定義的格式。

其餘事件的引發則是用來回應清單項目中的按鈕按選動作。它們是設計用來協助您回應 DataList 控制項的最常用的功能。受支援的這種類型事件有四種:

若要引發這些事件,請將 ButtonLinkButtonImageButton 控制項加入至 DataList 控制項的樣板中,然後將按鈕的 CommandName 屬性設定一個關鍵字,例如 edit、delete、update 或 cancel。當使用者按一下項目中的按鈕,事件會傳送到按鈕的容器,也就是 DataList 控制項。按鈕引發的實際事件是要視當時所按按鈕的 CommandName 屬性值而定。例如,如果按鈕的 CommandName 屬性設定為 edit,當按下按鈕時會引發 EditCommand 事件。如果 CommandName 屬性設定為 delete,按鈕會引發 DeleteCommand 事件等等。

DataList 控制項也支援當使用者按一下沒有預先定義命令的按鈕 (例如 edit 或 delete) 時,所引發的 ItemCommand 事件。您可使用這個事件來自訂功能,方式是將按鈕的 CommandName 屬性設定為您需要的值,接著在 ItemCommand 事件處理常式中測試它。例如,您可以在選取項目時使用如 HOW TO:允許使用者選取 DataList Web 伺服器控制項中的項目所述的方法。

如需 Web Form 事件的詳細資訊,請參閱 ASP.NET Web 伺服器控制項事件模型

編輯和選取項目

您可以讓使用者編輯控制項中的個別項目。其他資料控制項,例如 GridViewDetailsViewFormView 控制項,能夠與資料來源控制項互動以支援自動更新和分頁。相對地,DataList 控制項無法自動利用資料來源控制項的更新功能,或是自動分頁或排序。若要使用 DataList 控制項執行更新、分頁和排序,您必須在撰寫的程式碼中執行更新工作。

一般策略是建立提供適當配置和控制項的 EditItemTemplate 以進行編輯。您也可以為使用者提供方法來指示他們要如何編輯項目,執行這個動作最常用的方法是,包含項目樣板中的一個按鈕 (如果您正在使用,則是在 AlternatingItemTemplate 屬性中),然後將按鈕的 CommandName 屬性設定為 edit。接著,當按一下按鈕時,DataList 控制項會自動引發 EditCommand 事件。在您撰寫的事件處理常式程式碼中,將項目設定為顯示 EditItemTemplate 的編輯模式。

EditItemTemplate 通常包含允許使用者儲存或捨棄變更的按鈕 (例如,[更新] 和 [取消] 按鈕)。這些按鈕的功能與 [編輯] 按鈕類似,會將預先定義的命令訊息 (update 或 cancel) 傳送給 DataList 控制項,以便引發能夠讓您正確回應的 UpdateCommandCancelCommand 事件。如需詳細資訊,請參閱 HOW TO:允許使用者編輯 DataList Web 伺服器控制項中的項目

選取項目的處理序和前面的類似,是使用 SelectedIndexChanged 事件。將按鈕加入至 ItemTemplate,然後將 CommandName 屬性設定為 select。接著為 SelectedIndexChanged 事件撰寫事件處理常式。當使用者按一下 [選取] 按鈕時就會引發 SelectedIndexChanged 事件。如需詳細資訊,請參閱 HOW TO:允許使用者選取 DataList Web 伺服器控制項中的項目。如需詳細資訊,請參閱 HOW TO:允許使用者選取 DataList Web 伺服器控制項中的項目

回到頁首

程式碼範例

HOW TO:指定 DataList Web 伺服器控制項中的流程或表格格式

HOW TO:指定 DataList Web 伺服器控制項中的水平或垂直配置

HOW TO:允許使用者選取 DataList Web 伺服器控制項中的項目

HOW TO:允許使用者編輯 DataList Web 伺服器控制項中的項目

HOW TO:允許使用者刪除 DataList Web 伺服器控制項中的項目

HOW TO:回應 DataList 或 Repeater 項目中的按鈕事件

HOW TO:在執行階段中自訂 DataList 項目

HOW TO:在 DataList Web 伺服器控制項中動態自訂項目

HOW TO:在 DataList Web 伺服器控制項中動態建立樣板本

HOW TO:將 DataList Web 伺服器控制項加入至 ASP.NET 網頁

逐步解說:使用 DataList Web 伺服器控制項顯示並格式化資料

回到頁首

類別參考

下表列出與DataList 控制項相關的主要類別。

成員

描述

DataList

控制項的主要類別。

回到頁首

請參閱

概念

ASP.NET 資料存取概觀

ASP.NET Web 伺服器控制項樣板

其他資源

資料工具箱控制項