自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入研究Repeater控件:最大的靈活性

開(kāi)發(fā) 后端
本文介紹ASP.NET數(shù)據(jù)Web控件中的Repeater控件。Repeater控件在三個(gè)ASP.NET數(shù)據(jù)Web控件中提供了最大的靈活性:它呈現(xiàn)的HTML標(biāo)記是可以指定的。

Repeater控件在三個(gè)ASP.NET數(shù)據(jù)Web控件中提供了***的靈活性:它呈現(xiàn)的HTML標(biāo)記是可以指定的。DataGrid 或 DataList 會(huì)在預(yù)設(shè)的 HTML 標(biāo)記中自動(dòng)包含開(kāi)發(fā)人員指定的內(nèi)容。與它們不同的是,Repeater 在呈現(xiàn)的時(shí)候?qū)?yán)格生成指定的 HTML 標(biāo)記。 因此,如果不想用 HTML

< table>

或者一系列

< span>

標(biāo)記顯示數(shù)據(jù),而希望以其他方式顯示數(shù)據(jù),就必須使用 Repeater 控件。

就像 DataList 一樣,使用Repeater控件時(shí)要用模板指定標(biāo)記。 Repeater 包含下列五個(gè)模板:

AlternatingItemTemplate

FooterTemplate

HeaderTemplate

ItemTemplate

SeparatorTemplate

HeaderTemplate 和 FooterTemplate 指定出現(xiàn)在綁定到 Repeater 的數(shù)據(jù)之前和之后的 HTML 標(biāo)記。AlternatingItemTemplate 和 ItemTemplate 指定用于呈現(xiàn) Repeater 的

DataSource

中的每條記錄的 HTML 標(biāo)記和數(shù)據(jù)綁定語(yǔ)法。 例如,假設(shè)您要把包含雇員信息的數(shù)據(jù)集綁定到 Repeater,該數(shù)據(jù)集的其中一個(gè)字段是

EmployeeName

。 如果要在 Web 頁(yè)上以無(wú)序列表的形式顯示雇員列表,則可以使用如下 Repeater 語(yǔ)法:

  1. < asp:Repeater runat="server" id="rptEmployees"> 
  2.   < HeaderTemplate> 
  3.     < ul> 
  4.   < /HeaderTemplate> 
  5.   < ItemTemplate> 
  6.     < li>< %# DataBinder.Eval(Container.DataItem, "EmployeeName") %>< /li> 
  7.   < /ItemTemplate> 
  8.   < FooterTemplate> 
  9.     < /ul> 
  10.   < /FooterTemplate> 
  11. < /asp:Repeater> 

與 DataGrid 和 DataList 不同,Repeater 類不是從

WebControl

類派生的。 因此,Repeater 缺少 DataGrid 和 DataList 二者共有的樣式屬性。 這一點(diǎn)歸結(jié)起來(lái)無(wú)非是說(shuō),如果想對(duì) Repeater 中所顯示數(shù)據(jù)進(jìn)行格式設(shè)置,則必須在 HTML 標(biāo)記中進(jìn)行這樣的操作。 例如,在上面的例子中,如果想用粗體顯示雇員的姓名,則必須更改 ItemTemplate 以包含 HTML 粗體標(biāo)記,就像下面這樣:

  1. < ItemTemplate> 
  2.   < li>< b>< %# DataBinder.Eval(Container.DataItem, "EmployeeName")  
  3.     %>< /b>< /li> 
  4. < /ItemTemplate> 

然而對(duì)于 DataGrid 或 DataList,通過(guò)把控件的

ItemStyle-Font-Bold

屬性設(shè)置為 True,就能用粗體顯示文本了。

Repeater控件 缺少樣式屬性會(huì)大大增加開(kāi)發(fā)的時(shí)間指標(biāo)。 例如,假設(shè)決定使用 Repeater 顯示數(shù)據(jù),這些數(shù)據(jù)需要以粗體、中間對(duì)齊且?guī)в刑囟ū尘吧奶囟ㄗ煮w顯示。 所有這些都要用幾個(gè) HTML 標(biāo)記指定,這些標(biāo)記很快就會(huì)使 Repeater 的模板變得凌亂不堪。 這種凌亂會(huì)使以后對(duì)外觀進(jìn)行更改變得困難得多,尤其是當(dāng)其他人對(duì)該項(xiàng)目進(jìn)行操作時(shí),則不得不查看大量 HTML 語(yǔ)法。 將這一點(diǎn)與為 DataGrid 或 DataList 指定格式進(jìn)行比較。 對(duì)于這兩個(gè)控件中的任何一個(gè),都可以通過(guò)指定 DataGrid 或 DataList 的樣式屬性來(lái)使模板免于凌亂。 此外,可以用一些工具來(lái)自動(dòng)設(shè)置 DataGrid 和 DataList 的樣式屬性,例如 Microsoft Visual Studio .NET 或 ASP.NET Web Matrix。

除了延長(zhǎng)開(kāi)發(fā)時(shí)間之外,Repeater 還缺少有助于支持分頁(yè)、編輯或數(shù)據(jù)編輯的內(nèi)置功能。 由于缺少這些功能支持,Repeater 在可用性的評(píng)定中得分很低。 當(dāng)然,如果 所有您感興趣的只是顯示數(shù)據(jù),而不用帶任何別致的鈴聲或口哨聲,那么 Repeater 的功能匱乏就不是主要缺點(diǎn)了。 我之所以強(qiáng)調(diào)“如果”一詞是因?yàn)椋ǔ?,Web 應(yīng)用程序一旦進(jìn)行了部署,用戶就會(huì)發(fā)現(xiàn)他們需要附加的功能,例如排序、分頁(yè)和編輯。

Repeater 有一個(gè)彌補(bǔ)性的品質(zhì)(這并不令人吃驚),那就是性能。 Repeater 的性能比 DataList 的性能稍微好一點(diǎn),比 DataGrid 的性能要好很多。圖 3 顯示了Repeater 每秒能處理的請(qǐng)求數(shù),并與 DataGrid 和 DataList 進(jìn)行了對(duì)比。

Repeater 的每秒請(qǐng)求數(shù) 

圖 3: Repeater 的每秒請(qǐng)求數(shù)

【編輯推薦】

  1. DataList控件入門(mén)介紹
  2. DataGrid Web控件運(yùn)作機(jī)制探秘
  3. 小議ASP.NET數(shù)據(jù)Web控件之間的相似性
  4. 從傳統(tǒng)ASP到ASP.NET的轉(zhuǎn)變:了解控件
  5. ASP.NET調(diào)試API之Log4net使用指南
責(zé)任編輯:yangsai 來(lái)源: MSDN
相關(guān)推薦

2010-02-01 18:23:54

Python

2013-02-26 10:44:26

2009-01-01 22:08:15

企業(yè)網(wǎng)絡(luò)提高

2010-02-23 17:04:32

Python編程語(yǔ)言

2022-10-10 18:39:01

legendapp前端框架

2016-11-08 13:50:57

2012-03-07 15:22:02

2009-01-22 19:03:32

服務(wù)器虛擬化VMware

2024-05-15 08:54:04

C++類型限定符代碼

2015-12-31 09:44:56

公有云谷歌云評(píng)測(cè)

2010-07-20 09:18:48

云計(jì)算靈活性

2009-12-09 10:31:14

SOA質(zhì)量SOA靈活性

2012-02-24 09:03:11

云計(jì)算虛擬化

2014-04-30 15:52:59

紅帽

2010-07-22 10:08:39

JavaFXJava

2024-08-02 10:21:32

C#Exception類自定義異常

2012-09-25 13:45:36

Marvell

2010-01-06 12:16:46

Ubuntu軟件包

2014-05-08 13:31:43

移動(dòng)安全協(xié)作系統(tǒng)

2009-06-08 09:57:45

編程語(yǔ)言編程語(yǔ)言性能高級(jí)編程語(yǔ)言
點(diǎn)贊
收藏

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