msdn關於它的介紹
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview(VS.80).aspx
GridView 類
注意:此類在 .NET Framework 2.0 版中是新增的。
在表中顯示資料來源的值,其中每列表示一個欄位,每行表示一條記錄。GridView 控制項允許您選擇和編輯這些項以及對它們進行排序。
命名空間:System.Web.UI.WebControls
程式集:System.Web(在 system.web.dll 中)
[ControlValuePropertyAttribute("SelectedValue")] public class GridView : CompositeDataBoundControl, IPostBackContainer, IPostBackEventHandler, ICallbackContainer, ICallbackEventHandler
GridView 控制項用來在表中顯示資料來源的值。每列表示一個欄位,而每行表示一條記錄。GridView 控制項支援下面的功能:
欄欄位
GridView 控制項中的每一列由一個 DataControlField 對象表示。預設情況下,AutoGenerateColumns 屬性被設定為 true,為資料來源中的每一個欄位建立一個 AutoGeneratedField 對象。每個欄位然後作為 GridView 控制項中的列呈現,其順序同於每一欄位在資料來源中出現的順序。
通過將 AutoGenerateColumns 屬性設定為 false,然後定義您自己的欄欄位集合,您也可以手動控制哪些欄欄位將顯示在 GridView 控制項中。不同的欄欄位類型決定控制項中各列的行為。下表列出了可以使用的不同欄欄位類型。
欄欄位類型
說明
BoundField
顯示資料來源中某個欄位的值。這是 GridView 控制項的預設列類型。
ButtonField
為 GridView 控制項中的每個項顯示一個命令按鈕。這使您可以建立一列自訂按鈕控制項,如“添加”按鈕或“移除”按鈕。
CheckBoxField
為 GridView 控制項中的每一項顯示一個複選框。此欄欄位類型通常用於顯示具有布爾值的欄位。
CommandField
顯示用來執行選擇、編輯或刪除操作的預定義命令按鈕。
HyperLinkField
將資料來源中某個欄位的值顯示為超連結。此欄欄位類型允許您將另一個欄位綁定到超連結的 URL。
ImageField
為 GridView 控制項中的每一項顯示一個映像。
TemplateField
根據指定的模板為 GridView 控制項中的每一項顯示使用者定義的內容。此欄欄位類型允許您建立自訂的欄欄位。
若要以聲明方式定義欄欄位集合,請首先在 GridView 控制項的開始和結束標記之間添加 <Columns> 開始和結束標記。接著,列出您想包含在 <Columns> 開始和結束標記之間的欄欄位。指定的列將以所列出的順序添加到 Columns 集合中。Columns 集合儲存該控制項中的所有欄欄位,並允許您以編程方式管理 GridView 控制項中的欄欄位。
顯式聲明的欄欄位可與自動產生的欄欄位結合在一起顯示。兩者同時使用時,先呈現顯式聲明的欄欄位,再呈現自動產生的欄欄位。
綁定到資料
GridView 控制項可綁定到資料來源控制項(如 SqlDataSource、ObjectDataSource 等等),以及實現 System.Collections.IEnumerable 介面的任何資料來源(如 System.Data.DataView、System.Collections.ArrayList 或 System.Collections.Hashtable)。使用以下方法之一將 GridView 控制項綁定到適當的資料來源類型:
若要綁定到某個資料來源控制項,請將 GridView 控制項的 DataSourceID 屬性設定為該資料來源控制項的 ID 值。GridView 控制項自動綁定到指定的資料來源控制項,並且可利用該資料來源控制項的功能來執行排序、更新、刪除和分頁功能。這是綁定到資料的首選方法。
若要綁定到某個實現 System.Collections.IEnumerable 介面的資料來源,請以編程方式將 GridView 控制項的 DataSource 屬性設定為該資料來源,然後調用 DataBind 方法。當使用此方法時,GridView 控制項不提供內建的排序、更新、刪除和分頁功能。需要使用適當的事件提供此功能。
有關資料繫結的更多資訊,請參見 通過 ASP.NET 訪問資料。
注意
此控制項可用來顯示使用者輸入,而該輸入可能包含惡意的用戶端指令碼。在應用程式中顯示從用戶端發送來的任何資訊之前,請檢查它們是否包含可執行指令碼、SQL 陳述式或其他代碼。只要有可能,強烈建議在這些值顯示在此控制項中之前對它們進行 HTML 編碼(預設情況下,BoundField 類會對值進行 HTML 編碼)。ASP.NET 提供輸入請求驗證功能以阻止使用者輸入中的指令碼和 HTML。還提供驗證伺服器控制項以判斷使用者輸入。有關更多資訊,請參見 驗證控制項介紹。
資料操作
GridView 控制項提供了很多內建功能,這些功能使得使用者可以對控制項中的項進行排序、更新、刪除、選擇和分頁。當 GridView 控制項綁定到某個資料來源控制項時,GridView 控制項可利用該資料來源控制項的功能並提供自動排序、更新和刪除功能。
注意
GridView 控制項可為其他類型的資料來源提供對排序、更新和刪除的支援;但是,您必須提供一個適當的事件處理常式,其中包含對這些操作的實現。
排序允許使用者通過單擊某個特定列的標題來根據該列排序 GridView 控制項中的項。若要啟用排序,請將 AllowSorting 屬性設定為 true。
當單擊 ButtonField 或 TemplateField 欄欄位中命令名分別為“Edit”、“Delete”和“Select”的按鈕時,自動更新、刪除和選擇功能啟用。如果 AutoGenerateEditButton、AutoGenerateDeleteButton 或 AutoGenerateSelectButton 屬性分別設定為 true 時,GridView 控制項可自動添加帶有“編輯”、“刪除”或“選擇”按鈕的 CommandField 欄欄位。
注意
GridView 控制項不直接支援將記錄插入資料來源。但是,通過將 GridView 控制項與 DetailsView 或 FormView 控制項結合使用則可以插入記錄。有關更多資訊,請分別參見 DetailsView 或 FormView。
GridView 控制項可自動將資料來源中的所有記錄分成多頁,而不是同時顯示這些記錄。若要啟用分頁,請將 AllowPaging 屬性設定為 true。
自訂使用者介面
您可以通過設定 GridView 控制項的不同部分的樣式屬性自訂該控制項的外觀。下表列出了不同的樣式屬性。
樣式屬性
說明
AlternatingRowStyle
GridView 控制項中的交替資料行的樣式設定。當設定了此屬性時,資料行交替使用 RowStyle 設定和 AlternatingRowStyle 設定進行顯示。
EditRowStyle
GridView 控制項中正在編輯的行的樣式設定。
EmptyDataRowStyle
當資料來源不包含任何記錄時,GridView 控制項中顯示的空資料行的樣式設定。
FooterStyle
GridView 控制項的腳註行的樣式設定。
HeaderStyle
GridView 控制項的標題列的樣式設定。
PagerStyle
GridView 控制項的頁導航行的樣式設定。
RowStyle
GridView 控制項中的資料行的樣式設定。當還設定了 AlternatingRowStyle 屬性時,資料行交替使用 RowStyle 設定和 AlternatingRowStyle 設定進行顯示。
SelectedRowStyle
GridView 控制項中的選中行的樣式設定。
也可以顯示或隱藏控制項的不同部分。下表列出控制顯示或隱藏哪些部分的屬性。
屬性
說明
ShowFooter
顯示或隱藏 GridView 控制項的頁尾節。
ShowHeader
顯示或隱藏 GridView 控制項的頁首節。
事件
GridView 控制項提供多個您可以對其進行編程的事件。這使您可以在每次發生事件時都運行一個自訂常式。下表列出了 GridView 控制項支援的事件。
事件
說明
PageIndexChanged
在單擊某一頁導覽按鈕時,但在 GridView 控制項處理分頁操作之後發生。此事件通常用於以下情形:在使用者定位到該控制項中的另一頁之後,您需要執行某項任務。
PageIndexChanging
在單擊某一頁導覽按鈕時,但在 GridView 控制項處理分頁操作之前發生。此事件通常用於取消分頁操作。
RowCancelingEdit
在單擊某一行的“取消”按鈕時,但在 GridView 控制項退出編輯模式之前發生。此事件通常用於停止取消操作。
RowCommand
當單擊 GridView 控制項中的按鈕時發生。此事件通常用於在控制項中單擊按鈕時執行某項任務。
RowCreated
當在 GridView 控制項中建立新行時發生。此事件通常用於在建立行時修改行的內容。
RowDataBound
在 GridView 控制項中將資料行綁定到資料時發生。此事件通常用於在行綁定到資料時修改行的內容。
RowDeleted
在單擊某一行的“刪除”按鈕時,但在 GridView 控制項從資料來源中刪除相應記錄之後發生。此事件通常用於檢查刪除操作的結果。
RowDeleting
在單擊某一行的“刪除”按鈕時,但在 GridView 控制項從資料來源中刪除相應記錄之前發生。此事件通常用於取消刪除操作。
RowEditing
發生在單擊某一行的“編輯”按鈕以後,GridView 控制項進入編輯模式之前。此事件通常用於取消編輯操作。
RowUpdated
發生在單擊某一行的“更新”按鈕,並且 GridView 控制項對該行進行更新之後。此事件通常用於檢查更新操作的結果。
RowUpdating
發生在單擊某一行的“更新”按鈕以後,GridView 控制項對該行進行更新之前。此事件通常用於取消更新操作。
SelectedIndexChanged
發生在單擊某一行的“選擇”按鈕,GridView 控制項對相應的選擇操作進行處理之後。此事件通常用於在該控制項中選定某行之後執行某項任務。
SelectedIndexChanging
發生在單擊某一行的“選擇”按鈕以後,GridView 控制項對相應的選擇操作進行處理之前。此事件通常用於取消選擇操作。
Sorted
在單擊用於列排序的超連結時,但在 GridView 控制項對相應的排序操作進行處理之後發生。此事件通常用於在使用者單擊用於列排序的超連結之後執行某個任務。
Sorting
在單擊用於列排序的超連結時,但在 GridView 控制項對相應的排序操作進行處理之前發生。此事件通常用於取消排序操作或執行自訂的排序常式。