六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

對于何種情況下使用DataGrid、DataList或Repeater的一些討論(4)

[摘要][Repeater控件]   Repeater控件是三種數據控件中在HTML輸出方面最為靈活的控件。Repeater會按照你所要求的樣式嚴格地輸出數據記錄。所以,如果你不想以表格方式或者簡單的<...
[Repeater控件]



  Repeater控件是三種數據控件中在HTML輸出方面最為靈活的控件。Repeater會按照你所要求的樣式嚴格地輸出數據記錄。所以,如果你不想以表格方式或者簡單的<span>輸出數據,那么最好使用Repeater。

  與DataList一樣,Repeater使用模板來指定輸出樣式。Repeater支持如下五種模板:

  ·AlternatingItemTemplate

  ·FooterTemplate

  ·HeaderTemplate

  ·ItemTemplate

  ·SeparatorTemplate

  HederTemplate和FooterTemplate指定在真正的記錄輸出之前或之后應處理的HTML內容。AlternatingItemTemplate和ItemTemplate則指定實際的每條輸出記錄的HTML樣式。如,你需要綁定一個包含雇員信息的DataSet到一個Repeater,字段名為EmployeeName。如果你想在頁面中不排序地顯示這些記錄,你可以使用如下的語句:



  <asp:Repeater runat="server" id="rptEmployees">

    <HeaderTemplate>

      <ul>

    </HeaderTemplate>

    <ItemTemplate>

      <li><%# DataBinder.Eval(Container.DataItem, "EmployeeName") %></li>

    </ItemTemplate>

    <FooterTemplate>

      </ul>

    </FooterTemplate>

  </asp:Repeater>



  Repeater類不是繼承自WebControl類的,這一點與DataGrid和DataList不同。所以,Repeater沒有樣式方面的屬性可供設定。也就是說,如果你想格式化輸出Repeater的數據記錄,你必須使用HTML標簽來設定樣式。如,在一例中,如果我們想將雇員名字顯示成粗體,我們必須在ItemTemplate設置相應的HTML標簽:



  <ItemTemplate>

    <li><b><%# DataBinder.Eval(Container.DataItem, "EmployeeName")%></b></li>

  </ItemTemplate>



  而如果使用DataGrid或DataList,我們只通過設定ItemStyle-Font-Bold屬性為True即可實現。

  Repeater在格式化設定上的欠缺,直接反映到開發時間的延長上來。對輸出數據樣式上的越多要求,就越會導致開發周期的延長。這些在模板中規定樣式的HTML標簽也越發得顯得混亂,而且,在將來頁面更改時會更加困難,特別是當一個新的開發人員接替工作時。而使用DataGrid或DataList你盡可以只設定樣式屬性,而不使用模板。而且,如果使用Visual Studio.Net或ASP.Net Web Matrix工作時,這些屬性更可以被直接設定而無需編碼。

  因為Repeater開發時間的延長,其在內建功能(分頁、排序及編輯)上的支持也顯得不足。因此在可用性方面,Repeater有著明顯的缺陷。當然,<b>如果</b>用戶對于如何顯示數據無所謂的話,這也算不了什么大問題。我之所以強調這個“如果”,是因為盡管用戶有時在設計時并不要求能夠分頁、排序或編輯記錄,但這樣的要求往往會在開發后期,或在他們能看到顯示出來的記錄后產生。

  Repeater唯一優于DataGrid和DataList的特點是它的性能,尤其明顯優于DataGrid。圖3說明了這一點。






圖3:對Repeater的每秒請求次數



[結論]



  在ASP.Net頁面上顯示數據時,多數的程序員會選擇他們所熟悉的控件來使用,特別是DataGrid。然而,這樣盲目的選擇在沒有“最好的通用控件”的情況下是不明智的。在選擇控件來顯示數據前,不妨問自己幾個問題來幫助決策:是否允許用戶對記錄排序?是不是記錄需要顯示在非表格的情況下?頁面是否會被高頻度地訪問,因此應多考慮性能?

  DataGrid提供了最多的功能,如允許訪問者對記錄編輯、排序或分頁。同時它也是最容易使用的,甚至于簡單到只需要將之添加到頁面中而不必額外編寫代碼。不過這些易用性是以性能的損失為代價的。DataGrid在三種控件中是效率最低的,特別是在使用Web Form的情況下。

  通過使用模板,DataList提供了比DataGrid更加優秀的界面效果。不過這需要以犧牲一定的開發時間為代價。為了添加排序、分頁和編輯功能,程序員不得不花費比使用DataGrid更多的精力來進行編碼,雖然它的性能要優于DataGrid。

  最后,Repeater允許對數據記錄作最大限度的HTML定制。通常,使用Repeater來顯示數據記錄比使用DataGrid和DataList要耗費更長的開發時間。另外,它不支持內建的編輯、排序和分頁功能。所幸的是,Repeater在性能上要優于其它兩種控件,特別是明顯優于DataGrid。



[附錄]



WAST測試設定

  測試是在運行Microsoft Windows 2003 Server操作系統的筆記本電腦上完成的。基本配置如下:Intel P4 2.4G CPU;512 MB RAM;30GB Ultra ATA Hard drive;網頁服務器使用IIS 6.0;ASP.Net版本為1.1。此測試中的WAST被設置成使用單線程,每個測試時間為一分鐘。

  測試代碼http://download.microsoft.com/download/9/e/9/9e97b2f8-b317-4751-9ac1-2e34eebec26a/DataControlsPerfTest_Setup.


主站蜘蛛池模板: 日韩不卡在线观看 | 亚洲图片欧美在线 | 天天天天做夜夜夜夜 | 中文字幕第315页 | 最新中文字幕一区 | 在线亚洲精品国产波多野结衣 | 天天看片天天操 | 亚洲永久免费 | 日韩一区精品视频在线看 | 天天干天天弄 | 日韩在线视频网址 | 亚洲综合第一页 | 日本不卡高清免费 | 七月丁香八月婷婷综合激情 | 亚洲欧美日韩在线观看二区 | 日韩色综合 | 天天射天天干天天 | 青娱乐免费在线视频 | 日本在线观看免费 | 在线观看免费黄视频 | 色网站在线观看 | 欧美一级特黄刺激大片视频 | 亚洲视频国产视频 | 日本激情视频网站w | 午夜小视频在线观看 | 在线天堂中文新版www | 欧洲乱码专区一区二区三区四区 | 青青草原手机在线视频 | 一级做a爰毛片 | 日韩成人在线观看视频 | 欧美亚洲国产精品久久久 | 欧美影院一区二区三区 | 亚洲激情视频 | 搜索一级黄色片 | 全黄a一级毛片 | 日日艹夜夜艹 | 婷婷丁香激情 | 亚洲丁香 | 天天做人人爱夜夜爽2020 | 四虎影视免费观看免费观看 | 日韩精品视频免费在线观看 |