asp.net之是以現在開發友善和快捷,關鍵是它有一組強大的控件庫,包括web伺服器控件,web使用者控件,web自定義控件,html伺服器控件和html控件等。這裡主要說說html控件、html伺服器控件和web伺服器控件的差別。 1、html控件:就是我們通常的說的html語言标記,這些語言标記在已往的靜态頁面和其他網頁裡存在,不能在伺服器端控制的,隻能在用戶端通過javascript和vbscript等程式語言來控制。<input type="button" id="btn" value="button"/> 2、html伺服器控件:其實就是html控件的基礎上加上runat="server"所構成的控件.它們的注意差別是運作方式不同,html控件運作在用戶端,而html伺服器控件是運作在伺服器端的。參考其他資料是這樣說的: 當ASP.NET 網頁執行時,會檢查标注有無runat 屬性,如果标注沒有設定,那麼Html标注就會被視為符串,并被送到字元串流等待送到用戶端,用戶端的浏覽器會對其進行解釋;如果Html标注有設定runat="server" 屬性,Page 對象會将該控件放入控制器,伺服器端的代碼就能對其進行控制,等到控制執行完畢後再将Html伺服器控件的執行結果轉換成Html标注,然後當成字元串流發送到用戶端進行解釋<input id="Button" type="button" value="button" runat="server" /> 3、web伺服器控件:也稱asp.net伺服器控件,是Web Form程式設計的基本元素,也是asp.net所特有的。它會按照client的情況産生一個或者多個html控件,而不是直接描述html元素。如: <asp:Button ID="Button2" runat="server" Text="Button"/>那麼它和html伺服器控件有什麼差別呢?參照其他網頁的資料看法如下:
1)、Asp.net伺服器控件提供更加統一的程式設計接口,如每個Asp.net伺服器控件都有Text屬性。
2)、隐藏用戶端的不同,這樣程式員可以把更多的精力放在業務上,而不用去考慮用戶端的浏覽器是ie還是firefox,或者是移動裝置。
3)、Asp.net伺服器控件可以儲存狀态到ViewState裡,這樣頁面在從用戶端回傳到伺服器端或者從伺服器端下載下傳到用戶端的過程中都可以儲存。
4)、事件處理模型不同,Html标注和Html伺服器控件的事件處理都是在用戶端的頁面上,而Asp.net伺服器控件則是在伺服器上,舉例來說:
<input id="Button4" type="button" value="button" runat="server"/>是Html伺服器控件,此時我們點選此按鈕,頁面不會回傳到伺服器端,原因是我們沒有為其定義滑鼠點選事件。
<input id="Button4" type="button" value="button" runat="server" onserverclick="test" />我們為Html伺服器控件添加了一個onserverclick事件,點選此按鈕頁面會發回伺服器端,并執行test(object sender, EventArgs e)方法。
<asp:Button ID="Button2" runat="server" Text="Button" />是Asp.net伺服器控件,并且我們沒有為其定義click,但是我們點選時,頁面也會發回到伺服器端。
由此可見:Html标注和Html伺服器控件的事件是由頁面來觸發的,而Asp.net伺服器控件則是由頁面把Form發回到伺服器端,由伺服器來處理。 本篇文章來源于 IT中國 轉載請以連結形式注明出處 網址: http://www.it86.cc/develop/2008/0410/30559.shtml