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

DataList控件入門介紹

開發(fā) 后端
本文從DataList控件的呈現(xiàn)方式開始介紹,同時介紹了其與DataGrid控件在結(jié)構(gòu)和性能上的不同,為相當容易理解的DataList控件入門。

DataList控件入門:呈現(xiàn)方式

DataList控件和DataGrid控件類似,也是在ASP.NET中用于控制顯示數(shù)據(jù)的Web控件。要學習DataGrid控件,首先需要了解,DataGrid 將呈現(xiàn)為 HTML

< table>

,每一個

DataSource

記錄作為一個表行(

< tr>

),每一個記錄字段作為一個表列(

< td>

)。 有時,您可能想更多地控制數(shù)據(jù)的顯示。 例如,您可能想把數(shù)據(jù)顯示在 HTML

< table>

中,但不是每行顯示一條記錄,而是每行顯示五條記錄。 或者,您根本不想把數(shù)據(jù)顯示在

< table>

標記中,而是想把每個元素顯示在一個

< span>

標記中。

DataList控件入門:與DataGrid之不同

DataList 放棄了 DataGrid 所采用的“列”概念。 相反,DataList 的顯示是通過模板 定義的。 利用模板,開發(fā)人員可以指定混合的 HTML 語法和數(shù)據(jù)綁定語法。 HTML 語法是標準的 HTML 標記;數(shù)據(jù)綁定語法是使用

< %#

%>

標記分隔的,用于從

DataSource

的記錄中產(chǎn)生用于構(gòu)造給定 DataList 項的內(nèi)容。 例如,下面的 ItemTemplate 將顯示

DataSource

的字段

CompanyName:

  1. < asp:DataList runat="server" id="myDataList"> 
  2.   < ItemTemplate> 
  3.     < %# DataBinder.Eval(Container.DataItem, "CompanyName") %> 
  4.   < /ItemTemplate> 
  5. < /asp:DataList> 

除了數(shù)據(jù)綁定語法,模板也可以包含 HTML 標記。 通過更新上面的模板,可以使

CompanyName

字段以粗體顯示,而使

ContactName

字段以非粗體顯示在

CompanyName

字段的下面:

  1. < asp:DataList runat="server" id="myDataList"> 
  2.   < ItemTemplate> 
  3.     < b>< %# DataBinder.Eval(Container.DataItem, "CompanyName") %>< /b> 
  4.     < br /> 
  5.     < %# DataBinder.Eval(Container.DataItem, "ContactName") %> 
  6.   < /ItemTemplate> 
  7. < /asp:DataList> 

對于 DataList 的 DataSource 中的每一條記錄,都要計算 ItemTemplate 的數(shù)據(jù)綁定語法。 數(shù)據(jù)綁定語法的輸出與 HTML 標記一起指定了為 DataList 項呈現(xiàn)的 HTML。 DataList 還支持其他六個模板,包括 ItemTemplate在內(nèi)共有如下七個:

AlternatingItemTemplate

EditItemTemplate

FooterTemplate

HeaderTemplate

ItemTemplate

SelectedItemTemplate

SeparatorTemplate

注意,DataGrid 的 TemplateColumn 僅支持四個模板: ItemTemplate、HeaderTemplate、FooterTemplate 和 EditItemTemplate。

默認情況下,DataList 將每一項都顯示為 HTML

< table>

中的一行。 但是,通過設置

RepeatColumns

屬性,您可以指定表的每一行顯示多少個 DataList 項。 除了可以指定 HTML

< table>

的每一行顯示多少個 DataList 項之外,還可以指定 DataList 的內(nèi)容應該使用

< span>

標記顯示,而不是使用

< table>

標記。 DataList 的

RepeatLayout

屬性可以設置為 Table 或 Flow,表示 DataList 中的數(shù)據(jù)呈現(xiàn)在 HTML

< table>

中還是

< span>

標記中。

利用模板以及

RepeatColumns

RepeatLayout

屬性,很明顯 DataList 比 DataGrid 允許對呈現(xiàn)的 HTML 標記進行更多的自定義。 這種增強了的自定義使得使用 DataList 能夠產(chǎn)生更為友好的數(shù)據(jù)顯示,因為 DataGrid 的“每一條

DataSource

記錄占用一個表行的單 HTML

< table>

”模型不可能總是用于顯示信息的***選擇。 但是,只研究比 DataGrid 改進了的自定義并不足以確定 DataList 的可用性;我們還必須比較 DataGrid 和 DataList 的排序、分頁和編輯功能。

使用 EditItemIndex 模板以及 EditCommand、UpdateCommand 和 CancelCommand 事件,DataList 可以支持內(nèi)聯(lián)編輯。 但是,用 DataList 添加這樣的功能比用 DataGrid 花費的開發(fā)時間要長。 開發(fā)時間的差異是由于下面兩個原因:

通過 EditCommandColumn 列類型即可在 DataGrid 中創(chuàng)建的編輯/更新/取消按鈕,必須手動添加到 DataList 中,以及

DataGrid BoundColumn 列類型自動使用 TextBox Web 控件作為編輯接口,而使用 DataList 時必須通過 EditItemTemplate 為要編輯的項顯式指定的編輯接口。

雖然用 DataList 進行內(nèi)聯(lián)編輯不是很困難,但是 DataList 的數(shù)據(jù)排序、分頁和編輯卻很困難。 雖然一些靈活的編碼肯定能完成這樣的功能,但是向 DataList 中添加這樣的功能將花費相當多的開發(fā)時間。 因此,如果最終用戶能對數(shù)據(jù)進行排序和分頁是一個必需要求的話,那么***選擇 DataGrid 而不選擇 DataList。

DataList控件入門:性能比較

DataList 的性能比 DataGrid 的性能好,當 DataList 位于 Web 窗體內(nèi)時這一點更明顯。 圖 2 顯示了 Web Application Stress Tool 在 DataList 上的測試結(jié)果。

DataList 的每秒請求數(shù) 

圖 2: DataList 的每秒請求數(shù)

正如圖 2 中的結(jié)果顯示的那樣,當 DataList 放置在 Web 窗體內(nèi)時(因此導致該 Web 控件生成它的 ViewState),該 Web 控件要遠勝于 DataGrid。

【編輯推薦】

  1. DataGrid Web控件運作機制探秘
  2. 小議ASP.NET數(shù)據(jù)Web控件之間的相似性
  3. 從傳統(tǒng)ASP到ASP.NET的轉(zhuǎn)變:了解控件
  4. ASP.NET調(diào)試API之Log4net使用指南
  5. 使用ASP.NET模板生成HTML靜態(tài)頁面的五種方案
責任編輯:yangsai 來源: MSDN
相關推薦

2013-06-24 13:38:34

HTML5 DataList

2009-07-28 13:22:13

DataList和ReASP.NET

2009-07-02 10:27:20

JSP技術JSP入門

2009-06-22 14:13:08

JSF入門

2009-08-21 17:55:52

C#復合控件

2009-08-05 15:57:03

ASP.NET控件ID

2009-08-24 18:21:23

C# ListView

2009-08-03 15:08:00

SqlDataSour

2009-08-03 18:15:05

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

2014-09-24 11:42:46

AndroidButton

2009-08-04 15:58:06

ASP.NET動態(tài)控件

2009-12-30 16:43:47

Silverlight

2009-12-22 15:08:46

ADO控件

2009-10-12 15:02:51

VB.NET動態(tài)控件

2009-12-30 13:59:58

Silverlight

2009-08-27 14:32:15

C#編寫ActiveX

2009-07-30 13:21:17

Scala入門Hello World

2009-06-12 09:07:01

EJB入門

2018-01-08 08:50:05

Linux內(nèi)核系統(tǒng)程序

2009-09-24 15:02:26

Cisco認證
點贊
收藏

51CTO技術棧公眾號