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

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

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

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

        更新時間:2019-09-02 文章作者:未知 信息來源:網絡 閱讀次數:

        [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.

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 97精品免费视频| 亚洲v国产v天堂a无码久久| 亚洲人成综合网站7777香蕉| 在线观看免费精品国产| 美女被免费网站91色| 亚洲伊人久久大香线蕉影院| 国产免费午夜a无码v视频| baoyu122.永久免费视频| 亚洲av日韩av综合| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 亚洲人成综合网站7777香蕉| 亚洲乱码国产一区网址| 国产91免费在线观看| 国产免费久久精品丫丫| 亚洲精品二三区伊人久久| 91麻豆国产自产在线观看亚洲| 国产成人精品免费视| 中文字幕永久免费| 亚洲成a∨人片在无码2023| 亚洲成A人片在线观看WWW| 国产一区二区三区免费在线观看| 色欲色香天天天综合网站免费| 亚洲a无码综合a国产av中文| 亚洲激情视频在线观看| 亚洲精品国产日韩无码AV永久免费网| 成人免费观看一区二区| 一级女性全黄生活片免费看| 亚洲中文无码永久免费| 亚洲最大福利视频网站| 亚洲国模精品一区| 免费的一级片网站| 在线观看H网址免费入口| 伊人免费在线观看| 牛牛在线精品观看免费正| 亚洲人成小说网站色| 亚洲特级aaaaaa毛片| 久久亚洲国产视频| 久久国产成人亚洲精品影院 | 精品国产污污免费网站| 免费看一级高潮毛片| 亚洲乱人伦中文字幕无码|