資源描述:
《asp.net中程序構(gòu)架與程序代碼的分離--》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、ASP.Net中程序構(gòu)架與程序代碼的分離>>一年前,當(dāng)本人拿到一個(gè)名叫TL代碼混雜的局面。程序代碼與頁(yè)面構(gòu)架的分離是L代碼都是混雜在一起的,這種做法,雖然在L代碼與其混雜,程序的可讀性變得很差,讓人無(wú)法分清程序真正要表示的頁(yè)面構(gòu)架。而新技術(shù)ASP.Net則通過(guò)Codebehind、用戶控件(UserControl)以及自定義控件(CustomControl)等方法真正做到了代碼的分離。這是一個(gè)了不起的進(jìn)步,大家可以在本文中看到分離代碼后的ASP.Net程序的結(jié)構(gòu)是多么的清晰。飛刀借此地向大家演示一下它們的具體實(shí)現(xiàn)方法,我們先看看要實(shí)現(xiàn)的
2、功能。為了便于理解,這里設(shè)計(jì)的頁(yè)面比較簡(jiǎn)單,頁(yè)面分為三個(gè)主要的部分,頭部包含一個(gè)AdRotator控件(用于顯示廣告)與一個(gè)Label控件(用于顯示當(dāng)前廣告鏈接地址);中部是一個(gè)登陸頁(yè)面,包括兩個(gè)TextBox控件(分別用于輸入用戶名與密碼)、一個(gè)Label控件(顯示登陸是否成功)與一個(gè)Button控件(作為提交按鈕);底部包含兩個(gè)Label控件(分別顯示當(dāng)前用戶名與用戶權(quán)限)。熟悉ASP.Net的朋友,馬上就會(huì)意識(shí)到頭部由于使用了AdRotator控件,所以必定存在OnAdCreated事件以便在Label控件顯示相應(yīng)鏈接;而中部由于
3、使用Button控件做為提交按鈕,所以必定有一個(gè)OnClick事件處理。1CodeBehind首先我們就看看如何使用CodeBehind方法來(lái)實(shí)現(xiàn)代碼與頁(yè)面構(gòu)架的分離,下面給出的源程序是主ASP.Net程序--Example1.aspx:<%PageSrc="csEventHandle.cs"Inherits="Asp"%><html><head><title></title></head><body><formrunat="server">
4、<asp:Panelid="Header"runat="server"><asp:AdRotatorid="ad"AdvertisementFile="AdBannersad.xml"BordersgShoe"runat="server"/></td></tr><tr><td>密碼:</td><td><asp:TextBoxid="tbPassit"Text="登陸"OnClick="Submit_Click"runat="server
5、"/></td></tr></table></asp:Panel><asp:Panelid="Footer"runat="server">用戶名:<asp:Labelid="lblUserName"Font-Name="Arial"ForeColor="red"Text="游客"runat="server"/>權(quán)限:<asp:Labelid="lblPurviee="Arial"Text="無(wú)"ForeColor="red"runat="server"/
6、></asp:Panel></form></body></html>例程中,大家可以清楚地看到程序中不包含任何C#、VB、Jav12下一頁(yè)>>>>這篇文章來(lái)自..,。aScript來(lái)處理OnAdCreated與OnClick事件,但是執(zhí)行本程序,程序能夠正常使用(如圖2-1與圖2-2)。這便是使用CodeBehinde的結(jié)果,事件處理已經(jīng)被轉(zhuǎn)移到其它程序中定義執(zhí)行。請(qǐng)大家注意本例中第一行的信息:<%PageSrc="csEventHandle.cs"Inherits="Asp"
7、%>一般在ASP.Net程序中,Page指令都在設(shè)定本程序應(yīng)當(dāng)使用什么語(yǔ)言(使用Language屬性),而本例中沒(méi)有出現(xiàn)Language屬性,而是出現(xiàn)了兩個(gè)新的Page屬性:Src與Inherits。Src屬性設(shè)定事件處理真正的代碼位置,Inherits屬性則設(shè)定需要引入的類(lèi)名??梢钥吹奖纠卸x事件處理的文件是EventHandle.cs,我們來(lái)看看它的具體內(nèi)容:usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.yConn=nee,strPas
8、se=tbUserName.Text;strPassbbs_usere+"’andpassandMym=neand(strSelect,MyConn);SqlDataReaderdr=Mym.Execute