Asp.Net 不同區別的 OnClick ( onserverclick, onclientclick )
下面以 HTML的按鈕( system.web.ui.htmlcontrols ) 和 ASP.NET服務端按鈕 ( system.web.ui.webcontrols ) 為例:
1. HTML控件,如IMG的輸入按鈕等 的 onclick ( 客戶端 )和
onserverclick
( 服務端 )事件,注意 runat="server"。。。
此處的onclick先于onserverclick執行。
2.WEB控件,如<asp:button 按鈕等 的 onclientclick( 客戶端 ) 和 onclick ( 服務端 )事件。。。
此處的onclientclick先于onclick執行。
onclientclick
事件來自2.0, 它用來取代下列代碼。。。
總之,客戶端點擊事件先于服務器端點擊事件執行。也就是說,先執行客戶端的Javascript,然后到服務器端執行服務器的相關代碼。
附:html控件、html服務器控件和web用戶控件
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發回到服務器端,由服務器來處理。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
