寫(xiě)在前面的話
.net已經(jīng)上路了,前幾天著重寫(xiě)了寫(xiě)asp.net(VB)的基本安裝、語(yǔ)法、變量、原計(jì)劃把服務(wù)器控制結(jié)構(gòu)和過(guò)程編程也寫(xiě)上,但,這和asp里面的沒(méi)什么區(qū)別,在循環(huán)結(jié)構(gòu)里面多了一個(gè)with...end with操作一個(gè)對(duì)象的屬性的,其他的都差不多,想看詳細(xì)教程的請(qǐng)查閱Msdn,我就跳過(guò)這一節(jié)了,另外跳轉(zhuǎn)結(jié)構(gòu)---子例程和函數(shù)也跳過(guò),不過(guò),里面的模塊化很有意思的,還有傳遞參數(shù)的時(shí)候按照引用還是值傳遞這個(gè)很是重要,至于其中的區(qū)別,學(xué)過(guò)c++的都知道,不太明白的請(qǐng)查閱相關(guān)資料......由于篇幅關(guān)系,我把事件驅(qū)動(dòng)編程和回送也跳過(guò),相應(yīng)用戶的事件組,這個(gè)很有必要在這里說(shuō)說(shuō)。
官方定義事件:事件是由來(lái)自代碼外部的某種力量在應(yīng)用程序中引發(fā)的一個(gè)操作.將事件驅(qū)動(dòng)環(huán)境按照順序分為以下4個(gè)部分:
1、發(fā)生一個(gè)事件,like用戶單擊按鈕; 2、系統(tǒng)檢測(cè)到事件,asp.net注冊(cè)已發(fā)生的事件; 3、系統(tǒng)對(duì)事件做反應(yīng),執(zhí)行一些代碼; 4、系統(tǒng)返回其初始狀態(tài),等待下一事件;
html葉子是按照代碼的順序依次執(zhí)行的,而事件驅(qū)動(dòng)編程強(qiáng)調(diào)的是相應(yīng)用戶,執(zhí)行事件,等待相應(yīng)的思想。
ASP.NET支持3個(gè)主要的事件組,第一組是html內(nèi)部的事件,這些事件在瀏覽器上執(zhí)行。第二組包含在asp.net生成頁(yè)面時(shí)自動(dòng)發(fā)生,我們使用這些事件建立頁(yè)面.第三種包含了用戶與頁(yè)面交互時(shí)發(fā)生的所有事件(這種最強(qiáng)大)。
事件驅(qū)動(dòng)編程和回送 回送是處理過(guò)程,該過(guò)程包括:瀏覽器將信息發(fā)送到瀏覽器,告訴服務(wù)器處理事件,服務(wù)器執(zhí)行次事件處理程序中的代碼,并將得到的html再傳送到瀏覽器,回送只作用于有屬性runat="server"的web窗口,且只有asp.net控件才能將信息傳送到服務(wù)器。
下面看個(gè)事件驅(qū)動(dòng)的實(shí)例結(jié)束本節(jié).呵呵. 實(shí)例:我們要做這件事,設(shè)計(jì)一個(gè)"東西",要實(shí)現(xiàn)的是能加減乘除操作,并且顯示出計(jì)算結(jié)果。
現(xiàn)看看算法吧:
sub page_load(sender as object,e as eventargs) btnadd.backcolor=system.drawing.color.lightgray btnsubtract.backcolor=system.drawing.color.lightgray btnfactor.backcolor=system.drawing.color.lightgray btnra.backcolor=system.drawing.color.lightgray end sub sub ca(sender as object,e as eventargs) select case sender.id case "btnadd" labtxt.text=cdbl(input1.text)+cdbl(input2.text) case "btnsubtract" labtxt.text=cdbl(input1.text)-cdbl(input2.text) case "btnfactor" labtxt.text=cdbl(input1.text)*cdbl(input2.text) case "btnra" labtxt.text=cdbl(input1.text)/cdbl(input2.text) end select sender.backcolor=system.drawing.color.yellow end sub
分析上面代碼:page_load事件當(dāng)整個(gè)頁(yè)面第一次可見(jiàn)時(shí)發(fā)生,這里實(shí)現(xiàn)了令4個(gè)按鈕的背景顏色為淡灰色。子例程ca執(zhí)行的是用戶點(diǎn)擊按鈕操作后發(fā)生的事件,然后回送labtxt上,最后改變選擇web控件對(duì)象(按鈕)的背景顏色,注意到:
sub ca(sender as object,e as event) 'some code ............. end sub
它是事件處理程序提供的參數(shù)向處理程序傳遞參數(shù)事件信息,其中第一個(gè)參數(shù)sender提供了引發(fā)事件對(duì)象的引用,第二個(gè)參數(shù)E是一個(gè)事件類,用于捕捉所處理時(shí)間狀態(tài)的信息,并傳遞與該事件對(duì)應(yīng)的對(duì)象。
下面在視圖中拉上這7個(gè)控件,注意這里需要正確填寫(xiě)每個(gè)控件的ID,并且要在每個(gè)按鈕上添加事件:
onclick="ca"
意思就是說(shuō)當(dāng)點(diǎn)擊這個(gè)按鈕是發(fā)生事件ca,這是不可缺少的。 一切搞定了的話,最后的aspx頁(yè)面效果就像這樣:
所有源碼:
運(yùn)行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 下一頁(yè) asp.net(VB)中對(duì)象
◎進(jìn)入論壇網(wǎng)絡(luò)編程 版塊參加討論