ListView 控制項

ListView 控制項與 DataList 及 Repeater 控制項類似,可用於顯示任何重複結構中的資料。但與其他控制項不同的是 ListView 控制項可編輯、插入及刪除作業,以及排序和分頁。ListView 的分頁功能是由新的 DataPager 控制項所提供。

ListView 控制項具備高度的自訂彈性,可讓您利用範本與樣式定義控制項的 UI。其與 Repeater、DataList 及 FormView 控制項不同,ListView 控制項中的範本不會預先定義成在瀏覽器中呈現特定的 UI。

繫結資料至 ListView 控制項

您可以下列幾種方式將 [ListView] 控制項繫結到資料:

  • 使用 [DataSourceID] 屬性。這可讓您將 [ListViewc] 控制項繫結到資料來源控制項,如 [SqlDataSource] 控制項。 由於此法可讓 [ListView] 控制項應用資料來源控制項的功能,因此建議您加以採用。其亦提供排序、 分頁、 插入、 刪除及更新等內建功能,同時還可讓您使用雙向繫結運算式。如需有關資料來源控制項的詳細資訊,請參閱 ASP.NET 資料控制項概觀

  • 使用 [DataSource] 屬性。此法可讓您繫結到多種物件,包括 ADO.NET 資料集、資料讀取器與記憶體內結構 (如集合)。 使用此法時如需額外的功能 (如排序、分頁及更新),必須編寫程式碼。

建立 ListView 控制項的範本

[ListView] 控制項與 [DataList] 及 [Repeater] 控制項類似,由範本定義所顯示的項目。[ListView] 控制項可讓您個別顯示項目或以群組方式顯示資料。

您藉由建立 LayoutTemplate 範本而定義 [ListView] 控制項的主要 (根) 版面配置。LayoutTemplate 必須包含用為資料預留位置的控制項。例如,版面配置範本可能包括 ASP . NET 的 [Table]、[Panel] 或 [Label] 控制項。(也可能包括 HTML 之 runat 設定為 "server" 的 table、div 或 span 元素。)這些控制項將包含 ItemTemplate 範本所定義之各項目的輸出,並可將其分組到 GroupTemplate 範本所定義的內容中。

個別項目的內容在 ItemTemplate 範本中定義。此範本通常包含已將資料繫結至資料欄或個別資料元素的控制項。

分組項目

您可以選擇是否要使用 GroupTemplate 範本分組 [ListView] 控制項中的項目。一般會分組項目,建立並排式的表格版面配置。在並排式的表格版面配置中,項目會在列中重複 GroupItemCount 屬性所指定的次數。為建立並排式的表格版面配置,版面配置範本中可能會包含 ASP.NET 的 [Table] 控制項,或 HTML 之 runat 屬性設定為 "server" 的 table 元素。群組範本還可以再包含的 ASP . NET 的 TableRow 控制項 (或 HTML 的 tr 元素)。項目範本可以包含位於 ASP.NET 之 TableCell 控制項內 (或 HTML 的 td 元素) 的個別控制項。

您可以使用 EditItemTemplate 範本提供已繫結資料的 UI,讓使用者可以修改現有的資料項目。您可以使用 InsertItemTemplate 範本定義已繫結資料的 UI,讓使用者可以新增資料項目。如需詳細資訊,請參閱本主題稍後的修改資料。

分頁資料

若要讓使用者分頁 [ListView] 控制項中的資料,可以使用 [DataPager] 控制項。[DataPager] 控制項可以包含在 LayoutTemplate 範本中,或位於[ListView] 控制項外部的網頁上。若 [DataPager] 不在 [ListView] 控制項中,必須將 PagedControlID 屬性設定為 [ListView] 控制項的識別碼。如需詳細資訊,請參閱 DataPager 控制項

修改資料

您可以建立 [ListView] 控制項的範本,讓使用者編輯、插入或刪除單一資料項目。

若要讓使用編輯資料項目,可以將 EditItemTemplate 範本新增到 [ListView] 控制項。當項目切換至編輯模式時,[ListView] 控制項會透過編輯範本顯示項目。範本中應包含已繫結資料的控制項,如此使用者才可編輯值。例如,範本中可以包含文字方塊,讓使用者編輯現有的值。

若要讓使用插入新的項目,可以將 InsertItemTemplate 範本新增到 [ListView] 控制項。在與編輯範本搭配使用時,插入範本中應包含已繫結資料的控制項,如此才可輸入資料。InsertItemTemplate 範本會呈現在顯示項目的開頭或結尾。您可以使用 [ListView] 控制項的 InsertItemPosition 屬性指定 InsertItemTemplate 範本的呈現位置。

一般會在範本中新增按鈕,讓使用者指定所要採取的動作。例如,您可以在項目範本中新增 [刪除] 按鈕,讓使用者可以刪除該項目。

您可以在項目範本中新增 [編輯] 按鈕,讓使用者可以切換至編輯模式。在 EditItemTemplate 中,您可以納入 包含 [更新] 按鈕,讓使用者可以儲存變更。您也可以納入 [取消] 按鈕,讓使用者可以切換回顯示模式,而不儲存變更。

套用樣式到 ListView 項目

[ListView] 控制項不支援樣式屬性,如 BackColor 及字型。若要對 [ListView] 控制項套用樣式,必須使用 ListView 範本中之個別控制項的階層樣式表 (CSS) 類別或內嵌樣式。

部分支援屬性的物件可以讓您設定輸出元素的樣式。例如 NumericPagerField 物件包含下列屬性:

  • NumericButtonCssClass 屬性可指定用於根據號碼移往資料網頁之按鈕的 CSS 類別名稱。

  • CurrentPageLabelCssClass 屬性可用於指定目前頁碼的 CSS 類別名稱。

  • NextPreviousButtonCssClas 屬性可指定用於移往下一個或上一個數字按鈕群組之按鈕的 CSS 類別名稱。

如需有關使用 [ListView] 控制項的詳細資訊,請參閱 MSDN Library 的 ListView 網頁伺服器控制項概觀 (英文)。

請參閱

概念

DataPager 控制項

ASP.NET 資料控制項概觀

選擇及安裝 .NET Framework