成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

小議ASP.NET數(shù)據(jù)Web控件之間的異同

開發(fā) 后端
本文對(duì)三個(gè)主要的ASP.NET數(shù)據(jù)Web控件,即DataGrid、DataList和Repeater的異同之處做了一些研究。三個(gè)控件都是用于顯示數(shù)據(jù)的。

ASP.NET數(shù)據(jù)Web控件也就是DataGrid、DataList和Repeater。研究差異之前首先要了解相似性。從較高級(jí)別觀點(diǎn)來(lái)看,最基本的相似性是,DataGrid、DataList 和 Repeater都設(shè)計(jì)為了執(zhí)行大致相同的操作: 顯示數(shù)據(jù)。 另一個(gè)相似性把數(shù)據(jù)綁定到數(shù)據(jù) Web 控件所需的代碼。 具體地說(shuō),只需要下面兩行代碼:

  1. dataWebControlID.DataSource = someDataSource  
  2. dataWebControlID.DataBind()  

通常,賦給ASP.NET數(shù)據(jù)Web控件的

DataSource

屬性的

someDataSource

對(duì)象是一個(gè) DataSet、SqlDataReader、OleDbDataReader 或一個(gè)集合(如 Array、ArrayList 或

System.Collections

命名空間中的其他某個(gè)類)。 但是,任何實(shí)現(xiàn) IEnumerable 接口的對(duì)象都可以綁定到數(shù)據(jù) Web 控件。

DataBind()

方法枚舉指定的

DataSource

中的記錄。 對(duì)于

DataSource

中的每一條記錄,都會(huì)創(chuàng)建一個(gè)項(xiàng)并追加到數(shù)據(jù) Web 控件的

Items

集合中。 數(shù)據(jù) Web 控件中的每一項(xiàng)都是一個(gè)類實(shí)例。 用于控件每一項(xiàng)的特定類取決于該數(shù)據(jù) Web 控件。 例如,DataGrid 中的每一項(xiàng)都是

DataGridItem

類的一個(gè)實(shí)例,而 Repeater 中的每一項(xiàng)都是

RepeaterItem

類的一個(gè)實(shí)例。

每個(gè)數(shù)據(jù) Web 控件會(huì)為它的每一項(xiàng)使用不同的類,因?yàn)槭沁@些項(xiàng)呈現(xiàn)的方式?jīng)Q定了數(shù)據(jù) Web 控件生成的 HTML 標(biāo)記。 例如,DataGridItem 類是從

TableRow

類中派生的,這意味著每個(gè)

DataGridItem

都或多或少地呈現(xiàn)為一個(gè)表行。 這很有意義,因?yàn)?DataGrid 設(shè)計(jì)為在 HTML

< table>

標(biāo)記內(nèi)以表格形式顯示數(shù)據(jù),在 HTML

< table>

中,每一項(xiàng)都呈現(xiàn)為單獨(dú)一行。 另一方面,Repeater 設(shè)計(jì)為允許對(duì)它的輸出進(jìn)行完全自定義。 因此,RepeaterItem 類不從

TableRow

類中派生并不令人驚訝。

ASP.NET數(shù)據(jù)Web控件之間的另一個(gè)相似性是每個(gè)控件都能使用模板提供高度自定義的輸出。 DataList 和 Repeater 控件必須 使用模板指定它們的內(nèi)容,而 DataGrid 則通過(guò) TemplateColumn 列類型可以為特定的列選擇使用模板(我們將在下一節(jié)“研究 DataGrid Web 控件”中討論各種不同的 DataGrid 列類型)。

最后一個(gè)值得注意的是 DataGrid 和 DataList 控件是從

WebControl

類中派生的,而 Repeater 控件是從

Control

類中派生的。

WebControl

類包含許多美學(xué)方面的屬性,例如

BackColor

ForeColor

CssClass

BorderStyle

等。 這意味著如果使用 DataGrid 和 DataList,就可以通過(guò)它們從

WebControl

類中繼承的屬性指定樣式設(shè)置。 而 Repeater 沒有任何這樣的樣式屬性。

ASP.NET數(shù)據(jù)Web控件的區(qū)別與選擇

在 ASP.NET Web 頁(yè)面中顯示數(shù)據(jù)時(shí),很多開發(fā)人員都選擇他們最熟悉的數(shù)據(jù) Web 控件,通常是 DataGrid。 但是這樣的盲目決定不夠明智,因?yàn)楦緵]有通用的“最好的”數(shù)據(jù) Web 控件。 決定為給定的 Web 頁(yè)使用哪個(gè)數(shù)據(jù) Web 控件時(shí),應(yīng)該先就以下各種問(wèn)題自己考慮一下,以確定哪個(gè)控件最適合手邊的任務(wù)。 您想允許用戶對(duì)數(shù)據(jù)進(jìn)行排序嗎? 需要把數(shù)據(jù)用非 HTML

< table>

的格式顯示嗎? 頁(yè)面會(huì)被大量訪問(wèn)嗎,因而性能是一個(gè)關(guān)鍵的問(wèn)題嗎?

因?yàn)?DataGrid 能允許最終用戶排序、分頁(yè)和編輯它的數(shù)據(jù),所以這三個(gè)數(shù)據(jù) Web 控件中 DataGrid Web 控件提供了最好的功能集。 因?yàn)槭褂?DataGrid 時(shí)只需要把它添加到 Web 頁(yè)面中并寫幾行代碼,所以 DataGrid 也是最簡(jiǎn)單易用的數(shù)據(jù) Web 控件。 但是,容易使用和強(qiáng)大的功能是要付出代價(jià)的,如性能的代價(jià): DataGrid 是三個(gè)數(shù)據(jù) Web 控件中效率最低的,特別是當(dāng)把它放置在 Web 窗體中時(shí)。

通過(guò)使用模板,DataList 對(duì)顯示的數(shù)據(jù)外觀提供了比 DataGrid 更多的控制。 但是,使用模板通常比使用 DataGrid 的列類型需要更多的開發(fā)時(shí)間 DataList 還支持?jǐn)?shù)據(jù)的內(nèi)聯(lián)編輯,但是實(shí)現(xiàn)起來(lái)需要的工作量比 DataGrid 多。 遺憾的是,在 DataList 中提供分頁(yè)和排序支持不是一件簡(jiǎn)單的事。 DataList 比 DataGrid 提供了更好的性能,從而彌補(bǔ)了這些缺少的內(nèi)置功能。

最后,Repeater 控件允許對(duì)呈現(xiàn)的 HTML 標(biāo)記進(jìn)行完整和全面的控制。 對(duì)于 Repeater,生成的唯一 HTML 是模板中數(shù)據(jù)綁定語(yǔ)句的值和模板中指定的 HTML 標(biāo)記,而不會(huì)生成象 DataGrid 和 DataList 那樣的“額外”HTML。 由于要求開發(fā)人員指定完整生成的 HTML 標(biāo)記,所以通常 Repeater 需要的開發(fā)時(shí)間最長(zhǎng)。 而且,Repeater 不提供內(nèi)置編輯、排序或分頁(yè)支持。 但是,Repeater 的性能確實(shí)是這三個(gè)數(shù)據(jù) Web 控件中最好的。 它的性能可與 DataList 相比,但明顯比 DataGrid 好。

【編輯推薦】

  1. 從傳統(tǒng)ASP到ASP.NET的轉(zhuǎn)變:了解控件
  2. ASP.NET調(diào)試API之Log4net使用指南
  3. 使用ASP.NET模板生成HTML靜態(tài)頁(yè)面的五種方案
  4. ASP.NET Login控件使用方法及須知
  5. 什么是ASP.NET MVC,以及其優(yōu)點(diǎn)概覽
責(zé)任編輯:yangsai 來(lái)源: MSDN
相關(guān)推薦

2009-08-03 15:43:22

asp.net控件

2009-08-07 17:41:07

ASP.NET Web

2009-07-30 12:42:19

html控件和web控

2009-10-09 10:52:43

ASP.NET模板引擎

2009-07-27 13:52:36

Panel控件ASP.NET

2009-08-17 10:16:26

ASP.NET的WEB

2009-07-28 14:22:05

數(shù)據(jù)源控件ASP.NET

2009-07-24 15:35:00

ASP.NET Gri

2009-09-11 09:09:00

ASP.NETAdRotator控件

2009-07-20 13:32:24

ScriptManagASP.NET

2009-08-04 11:29:14

HTML代碼ASP.NET控件

2009-07-24 17:15:52

SiteMapData

2009-08-07 15:34:15

ASP.NET數(shù)據(jù)綁定

2009-08-04 15:20:59

ASP.NET數(shù)據(jù)驗(yàn)證數(shù)據(jù)驗(yàn)證控件

2012-09-26 09:46:29

ASP.NETWeb框架

2009-07-27 17:25:53

ASP.NET驗(yàn)證控件

2009-08-17 09:24:25

ASP.NET控件

2009-08-03 15:08:00

SqlDataSour

2009-07-27 16:19:59

ASP.NET報(bào)表控件

2009-07-29 13:50:26

UpdatePanelASP.NET
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中文字幕在线中文 | 久久久久亚洲精品 | 欧美一区二区免费视频 | 亚洲一区二区在线电影 | 国产日韩一区二区三区 | 欧美一区二区三区视频 | 国产精品日韩欧美一区二区三区 | 亚洲视频国产 | 欧美极品少妇xxxxⅹ免费视频 | 一区二区免费 | 91精品久久久久久久久久入口 | 久久久日韩精品一区二区三区 | 欧美美女二区 | 毛片a| www日日日| 天天拍天天射 | 在线观看视频一区二区三区 | 夜夜精品浪潮av一区二区三区 | 一区二区三区不卡视频 | 国产成人精品a视频一区www | 一区二区三区视频在线观看 | 国产综合在线视频 | 热99| 99久久婷婷国产亚洲终合精品 | 午夜影院在线观看 | 久久亚洲二区 | 中文字幕日本一区二区 | 男人午夜视频 | 成人区精品一区二区婷婷 | 国产精品自拍av | 色视频一区二区 | 欧美乱做爰xxxⅹ久久久 | 在线观看av网站 | 国产婷婷色一区二区三区 | 国产成人免费视频 | 精久久| 黄色a级一级片 | 亚洲精品欧美一区二区三区 | 波多野结衣先锋影音 | 紧缚调教一区二区三区视频 | 综合久久国产 |