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

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