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

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

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

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

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

        作者:Scott Mitchell



        [概述]



          WEB開發自從有了基于腳本的WEB編程技術(如ASP)以來,經歷了一個漫長的過程。通過使用微軟的ASP.Net技術,傳統的ASP中大量的、單調乏味的、重復性的編程工作成為了歷史。例如,象大多數ASP程序員所知的,在ASP中顯示數據庫內容所需要的過程:



          建立數據庫連接

          用SQL查詢裝載ADO數據集

          顯示所需要的任何HTML代碼

          遍歷數據集中的記錄

            輸出記錄字段值及相關的HTML

            移向下一條記錄

          循環

          顯示所需要的HTML代碼



          又如,為了在表格中顯示記錄集的內容,我們需要輸出一個<table>標簽,然后開始循環。在循環中,每輸出一條記錄,需要先輸出一個<tr>標簽以及若干對<td>標簽和</tr>標簽。最后,以一個標簽結尾。

          在傳統的ASP中使用的這種方法有一個主要的缺點:HTML代碼與ASP源代碼不得不糾纏在一起。對于那些也許并不理解程序設計的頁面設計者或圖形藝術家來說,想要更改HTML內容無疑是一場災難。另外,代碼的產生量也是驚人的,因為我們不僅需要從數據庫中取得數據,還需要使之可視化。

          好在,ASP.Net提供了三個數據控件,使得原本在ASP中繁雜的工作變得簡單。這三個控件屬于數據Web控件,分別是DataGrid,DataList和Repeater。如果你對ASP.Net數據庫編程有所了解的話,你至少應該有使用其中一種控件的經驗。大多數情況下,我們從學習使用DataGrid開始,因為它的功能相對完整(數據顯示、分頁、編輯)并相對簡單。然而,DataGrid并非總是正確的選擇。

          本文將分別論述每個數據控件不同于其它數據控件的特點,以及由此帶來的優缺點。正因為每種數據控件都有其自身的缺陷,因此在程序設計中并不存在最完美的選擇。你必須權衡三種控件的優缺點并決定哪一種更加適合你的程序。

          為了幫助比較,在對每個控件進行論述時,我們會專注于三個特性:可用性(從頁面訪問者的角度)、開發時間和性能。我們首先描述一下這三種控件的共性,然后分別深入地討論三種控件的特點,每種控件如何實現以及如何體現可用性、開發時間和性能。



        [數據控件(Data Web Controls)的共同點]



          在我們討論三種控件各自特性之前,有必要先看一看它們之間的共同點。一般來說,從編程流程來看,最顯著的共同點就是,這三種控件都是用來顯示數據的。另一個共同點是需要一個數據綁定的代碼來將數據與控件綁定。這個過程只需要兩行代碼:

          

          dataWebControlID.DataSource = someDataSource

          dataWebControlID.DataBind()

          

          一般情況下,someDataSource對象是指數據控件的數據源屬性,可以是DataSet,SqlDataReader,OleDbDataReader或一組數據(如數組、數組列表或其它的屬于System.Collection名空間的類)。不過,任意實現IEnumerable接口的對象也可以被綁定在數據控件上。

          DataBind()方法遍歷一個特定的DataSource中的記錄,并對其中的每條記錄,建立一個條目并對應數據控件的Item集。數據控件中的每個條目將成為一個類的實例。這個類因數據控件的不同而有所區別。例如,DataGrid中的每個條目是DataGridItem類的一個實例,而Repeater中的條目則是RepeaterItem類的一個實例。

          之所以使用不同的類來實例化不同數據控件的條目,是因為不同的數據控件將會使用不同的方式顯示數據及相應的HTML代碼。例如,DataGridItem類繼承自TableRow類,也就是說,每個DataGridItem的實例或多或少地可以看成一個表格中的一行。這是因為DataGrid被設計成可以借助HTML中的<table>標簽以表格的形式顯示數據,因此每條記錄就是一個表格行。而Repeater則被設計成可以自由定義數據輸出的方式。所以,RepeaterItem并不繼承自TableRow就不奇怪了。

          另一個三種數據控件的相同點是每種控件都被允許使用模板來顯示數據。DataList和Repeater控件必須使用模板來輸出數據,而DataGrid則允許通過TemplateColumn而只使用模板來顯示一列(在DataGrod單元中詳細論述)。

          另一個不是十分值得比較的地方是:DataGrid和DataList都是繼承自WebControl類,而Repeater則是繼承自Control類。WebControl類包含一些用于美化的屬性,如:BackColor、ForeColor、CssClass、BorderStyle等等。這說明在使用DataGrid或DataList時,你可以設定這些屬性來個性化輸出。Repeater控件則不具有這些屬性。我們會在Repeater單元討論如何使用模板來美化Repeater的輸出。

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 综合在线免费视频| 亚洲精品尤物yw在线影院| 成人免费视频一区| 亚洲国产成人久久精品99 | 亚洲人成人无码.www石榴| 免费很黄无遮挡的视频毛片| 午夜影视在线免费观看| 国产亚洲精品bv在线观看| 在线观看免费成人| 亚洲a∨国产av综合av下载 | 一级看片免费视频囗交| 最好看的中文字幕2019免费| 久久久亚洲欧洲日产国码农村| 免费精品久久天干天干| 久久精品亚洲中文字幕无码麻豆| 在线a亚洲老鸭窝天堂av高清| 中文字幕免费在线播放| 国产AV无码专区亚洲AV男同| 亚洲av日韩精品久久久久久a| 日韩中文字幕在线免费观看| 老司机午夜精品视频在线观看免费| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲人成www在线播放| 国产免费一区二区三区不卡| 亚洲AV美女一区二区三区| 亚洲人成免费电影| 亚洲日本VA午夜在线电影| 国产又大又粗又硬又长免费| 一区二区三区AV高清免费波多| 在线免费观看国产| 亚洲影院天堂中文av色| 日韩亚洲国产综合久久久| 久久久久se色偷偷亚洲精品av| 香蕉成人免费看片视频app下载| 久久久久久久亚洲Av无码| 免费黄色一级毛片| 一级毛片无遮挡免费全部| 午夜亚洲AV日韩AV无码大全| 无码人妻一区二区三区免费手机 | 丝袜熟女国偷自产中文字幕亚洲| 色五月五月丁香亚洲综合网|