[精]html web 控制項和onclick onclientclick區別
此處的onclick先於onserverclick執行。2.WEB控制項,如<asp:button 按鈕等 的 onclientclick( 客戶端 ) 和 onclick ( 服務端 )事件。。。
此處的onclientclick先於onclick執行。onclientclick 事件來自2.0, 它用來取代下列代碼。。。
總之,客戶端點擊事件先於伺服器端點擊事件執行。也就是說,先執行客戶端的Javascript,然後到伺服器端執行伺服器的相關代碼。附:html控制項、html伺服器控制項和web用戶控制項 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發回到伺服器端,由伺服器來處理。onclick,onclientclick和onserverclick的區別 下面以 HTML的按鈕( system.web.ui.htmlcontrols ) 和 ASP.NET服務端按鈕 ( system.web.ui.webcontrols ) 為例: 1. HTML控制項,如IMG的輸入按鈕等 的 onclick ( 客戶端 )和 onserverclick( 服務端 )事件, 注意 runat="server"。。。 <input type="button" id="btn" name="btn" value="button" runat="server" onserverclick="ServerSideEvent" onclick="SideScript" /> 此處的onclick先於onserverclick執行。 2.WEB控制項,如<asp:button 按鈕等 的 onclientclick( 客戶端 ) 和 onclick ( 服務端 )事件。。。 <asp:Button ID="btn" text="button" runat="server" OnClick="SideScript" OnClientClick="ClientSideScript" /> 此處的onclientclick先於onclick執行。 onclientclick 事件來自2.0, 它用來取代下列代碼。。。 btn.Attributes.Add("onclick","SideScript"); 總之,客戶端點擊事件先於伺服器端點擊事件執行。也就是說,先執行客戶端的Javascript,然後 到伺服器端執行伺服器的相關代碼。 ASP.NET中Onclick和OnserverClick事件的區別 對於伺服器按鈕控制項(即<asp:Button>類型的按鈕): 伺服器響應事件:OnClick 客戶端響應屬性:OnClientClick 對於html按鈕控制項(即<input type="button" runat="server">) 伺服器響應事件:OnServerClick 客戶端響應事件:onclick asp:Button類型的是onclick <input type="button" runat="server" />類型的是onserverclick 一個是.net的控制項 ~一個是html控制項轉換成伺服器端控制項 效果完全一樣,應為input 本身具有onclick的客戶端事件,微軟只能使用onserverclick作為伺服器端響應的名稱
推薦閱讀:
※第三章常用的控制項和屬性
※C# 控制項縮寫大全+命名規範+示例
※C#中利用LightningChart繪製曲線(及LightningChart介紹)
※WPF控制項簡單總結(轉載)
※Camera Raw控制項功能全解