• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發(fā)教程 > 詳細頁面

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

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

        更新時間:2019-09-02 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

        [Repeater控件]



          Repeater控件是三種數(shù)據(jù)控件中在HTML輸出方面最為靈活的控件。Repeater會按照你所要求的樣式嚴格地輸出數(shù)據(jù)記錄。所以,如果你不想以表格方式或者簡單的<span>輸出數(shù)據(jù),那么最好使用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的數(shù)據(jù)記錄,你必須使用HTML標簽來設定樣式。如,在一例中,如果我們想將雇員名字顯示成粗體,我們必須在ItemTemplate設置相應的HTML標簽:



          <ItemTemplate>

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

          </ItemTemplate>



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

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

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

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






        圖3:對Repeater的每秒請求次數(shù)



        [結論]



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

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

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

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



        [附錄]



        WAST測試設定

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

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

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲精品蜜夜内射| 亚洲国产日韩综合久久精品| 美女黄色免费网站| 亚洲中文字幕日本无线码| 国产偷国产偷亚洲清高APP| 毛片免费观看的视频在线| 伊人久久亚洲综合| 人碰人碰人成人免费视频| 国产免费131美女视频| 综合自拍亚洲综合图不卡区| 久久国产精品萌白酱免费| 久久精品国产亚洲av水果派| 综合一区自拍亚洲综合图区| 国产青草视频在线观看免费影院| 亚洲高清资源在线观看| 一级女人18毛片免费| 学生妹亚洲一区二区| 成人永久福利免费观看| 亚洲一欧洲中文字幕在线| 任你躁在线精品免费| 久久精品国产精品亚洲色婷婷| 久久永久免费人妻精品下载 | 美女免费精品高清毛片在线视| 亚洲国产V高清在线观看| 亚洲人成网站色在线观看| 国产精品免费视频网站| 91福利免费网站在线观看| 国产一级做a爱免费视频| 久久99精品免费一区二区| 亚洲成a人片在线观看老师| 国精产品一区一区三区免费视频| 亚洲美女中文字幕| 国产免费人视频在线观看免费| 国产成人无码精品久久久免费| 又大又粗又爽a级毛片免费看| 亚洲欧美国产日韩av野草社区| 亚洲国产人成精品| 亚洲大尺度无码无码专线一区| 亚洲伊人久久成综合人影院| 亚洲成人免费网站| 狠狠热精品免费观看|