Asp.Net 不同區(qū)別的 OnClick ( onserverclick, onclientclick )
下面以 HTML的按鈕( system.web.ui.htmlcontrols ) 和 ASP.NET服務(wù)端按鈕 ( system.web.ui.webcontrols ) 為例:
1. HTML控件,如IMG的輸入按鈕等 的 onclick ( 客戶端 )和
onserverclick
( 服務(wù)端 )事件,注意 runat="server"。。。
此處的onclick先于onserverclick執(zhí)行。
2.WEB控件,如<asp:button 按鈕等 的 onclientclick( 客戶端 ) 和 onclick ( 服務(wù)端 )事件。。。
此處的onclientclick先于onclick執(zhí)行。
onclientclick
事件來自2.0, 它用來取代下列代碼。。。
總之,客戶端點擊事件先于服務(wù)器端點擊事件執(zhí)行。也就是說,先執(zhí)行客戶端的Javascript,然后到服務(wù)器端執(zhí)行服務(wù)器的相關(guān)代碼。
附:html控件、html服務(wù)器控件和web用戶控件
1)、Asp.net服務(wù)器控件提供更加統(tǒng)一的編程接口,如每個Asp.net服務(wù)器控件都有Text屬性。
2)、隱藏客戶端的不同,這樣程序員可以把更多的精力放在業(yè)務(wù)上,而不用去考慮客戶端的瀏覽器是ie還是firefox,或者是移動設(shè)備。
3)、Asp.net服務(wù)器控件可以保存狀態(tài)到ViewState里,這樣頁面在從客戶端回傳到服務(wù)器端或者從服務(wù)器端下載到客戶端的過程中都可以保存。
4)、事件處理模型不同,Html標(biāo)注和Html服務(wù)器控件的事件處理都是在客戶端的頁面上,而Asp.net服務(wù)器控件則是在服務(wù)器上,舉例來說:
<input id="Button4" type="button" value="button" runat="server"/>是Html服務(wù)器控件,此時我們點擊此按鈕,頁面不會回傳到服務(wù)器端,原因是我們沒有為其定義鼠標(biāo)點擊事件。
<input id="Button4" type="button" value="button" runat="server" onserverclick="test" />我們?yōu)镠tml服務(wù)器控件添加了一個onserverclick事件,點擊此按鈕頁面會發(fā)回服務(wù)器端,并執(zhí)行test(object sender, EventArgs e)方法。
<asp:Button ID="Button2" runat="server" Text="Button" />是Asp.net服務(wù)器控件,并且我們沒有為其定義click,但是我們點擊時,頁面也會發(fā)回到服務(wù)器端。
由此可見:Html標(biāo)注和Html服務(wù)器控件的事件是由頁面來觸發(fā)的,而Asp.net服務(wù)器控件則是由頁面把Form發(fā)回到服務(wù)器端,由服務(wù)器來處理。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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