ASP.NET的GridView與DataGrid控件比較淺析
ASP.NET的GridView與DataGrid 控件比較都有哪些方面呢?那么下面就開(kāi)始我們的講解:
GridView 控件是 DataGrid 控件的后繼控件。與 DataGrid 控件相似,GridView 控件旨在在 HTML 表中顯示數(shù)據(jù)。當(dāng)綁定到數(shù)據(jù)源時(shí),DataGrid 和 GridView 控件分別將 DataSource 中的一行顯示為輸出表中的一行。
DataGrid 和 GridView 控件都是從 WebControl 類(lèi)派生的。雖然 GridView 控件與 DataGrid 控件具有類(lèi)似的對(duì)象模型,但與 DataGrid 控件相比,前者還具有許多新功能和優(yōu)勢(shì),包括:
更豐富的設(shè)計(jì)時(shí)功能。
ASP.NET的GridView與DataGrid 控件之改進(jìn)的數(shù)據(jù)源綁定功能。
排序、分頁(yè)、更新和刪除的自動(dòng)處理。
其他列類(lèi)型和設(shè)計(jì)時(shí)列操作。
具有 PagerTemplate 屬性的自定義頁(yè)導(dǎo)航用戶(hù)界面 (UI)。
GridView 控件和 DataGrid 控件之間的差異包括:
不同的自定義分頁(yè)支持。
不同的事件模型。
ASP.NET的GridView與DataGrid 控件之改進(jìn)的設(shè)計(jì)時(shí)功能
使用 DataGrid 控件時(shí),數(shù)據(jù)的排序、分頁(yè)和就地編輯需要附加的編碼。GridView 控件則使您無(wú)需編寫(xiě)任何代碼即可添加排序、分頁(yè)和編輯功能。實(shí)際上,可以通過(guò)在控件上設(shè)置屬性來(lái)自動(dòng)完成這些任務(wù)(以及諸如到數(shù)據(jù)源的數(shù)據(jù)綁定等其他常見(jiàn)任務(wù))。
在設(shè)計(jì)器(如 Microsoft Visual Studio)中工作時(shí),可以利用內(nèi)置在 GridView 控件中的設(shè)計(jì)器功能。GridView 控件提供了對(duì)智能標(biāo)記面板的支持,這種面板為執(zhí)行常見(jiàn)任務(wù)(如設(shè)置屬性和啟動(dòng)模板編輯)提供了方便的界面。
ASP.NET的GridView與DataGrid 控件之改進(jìn)的數(shù)據(jù)源綁定功能
通常,將 DataSet 控件、DbDataReader 控件或集合(如 Array、ArrayList 或 System.Collections 命名空間中的其他一些類(lèi))分配給 DataGrid 控件或 GridView 控件的 DataSource 屬性。DataGrid 控件和 GridView 控件可以綁定任何實(shí)現(xiàn) IEnumerable 或 IListSource 接口的對(duì)象。
DataGrid 控件可以以聲明方式綁定 DataSourceControl 控件,但這只適用于數(shù)據(jù)選擇。必須手動(dòng)編碼才能實(shí)現(xiàn)排序、分頁(yè)、更新和刪除。GridView 控件支持 DataSourceID 屬性,該屬性接受任何實(shí)現(xiàn)了 IDataSource 接口因此可以利用數(shù)據(jù)源控件的排序、分頁(yè)、更新和刪除功能的對(duì)象,例如,SqlDataSource 控件。
ASP.NET的GridView與DataGrid 控件之其他列類(lèi)型
GridView 控件支持以下列類(lèi)型:BoundField、HyperLinkField、ButtonField、CommandField、ImageField 和 CheckBoxField。
內(nèi)置和自定義分頁(yè)支持
DataGrid 控件需要其他編碼用于分頁(yè)。GridView 控件通過(guò)設(shè)置 PagerSettings 屬性自動(dòng)支持分頁(yè)。PagerSettings 屬性支持四種模式:Numeric(默認(rèn)值)、NextPrevious、NumericFirstLast 和 NextPreviousFirstLast。Numeric 模式顯示帶編號(hào)的頁(yè)鏈接而不是“下一個(gè)/上一個(gè)”鏈接,并且 NumericFirstLast 選項(xiàng)添加***個(gè)和***一個(gè)頁(yè)鏈接。GridView 控件的 PagerStyle 屬性可以用于設(shè)置頁(yè)導(dǎo)航的樣式和位置。
另外,可以使用 PagerTemplate 自定義 GridView 控件的頁(yè)導(dǎo)航按鈕。
GridView 中的自定義分頁(yè)支持由綁定數(shù)據(jù)源控件提供,而 AllowCustomPaging 機(jī)制則是由 DataGrid 控件提供的。
ASP.NET的GridView與DataGrid 控件之?dāng)U展的事件模型
DataGrid 與GridView 控件具有不同的事件模型。
DataGrid 控件引發(fā)操作的單個(gè)事件,而 GridView 控件能夠引發(fā)操作前和操作后的事件。GridView 控件支持在對(duì)字段排序時(shí)發(fā)生的 Sorting 事件。注意,此排序事件發(fā)生在 GridView 控件自動(dòng)處理排序操作之前,這樣您將有機(jī)會(huì)檢查或更改 SortExpression 屬性,或通過(guò)在傳遞的事件參數(shù)上將 Cancel 屬性設(shè)置為 true 來(lái)取消此操作。
ASP.NET的GridView與DataGrid 控件之間的區(qū)別就簡(jiǎn)單向你介紹到這里,希望對(duì)你了解ASP.NET的GridView與DataGrid 控件有所幫助。
GridView 控件支持在 GridView 控件完成排序操作之后發(fā)生的 Sorted 事件,這樣您將有機(jī)會(huì)更改排序操作的結(jié)果或設(shè)置其格式。相反,DataGrid 控件支持在對(duì)列進(jìn)行排序時(shí)發(fā)生的 SortCommand 事件。同樣,GridView 控件支持在 GridView 控件自動(dòng)處理更新操作之前和之后發(fā)生的 RowUpdating 和 RowUpdated 事件。相比之下,DataGrid 控件支持在對(duì)網(wǎng)格中的項(xiàng)單擊“更新”按鈕時(shí)發(fā)生的 UpdateCommand 事件。
【編輯推薦】