国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET網站建設之代碼分離

2024-07-10 12:56:52
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

在我們傳統的網站建設中通常是先設計網站頁面,再利用開發工具,在網站的框架內進行功能設計。這樣的網站建設存在很多弊端,其中最突出的缺點是不利于小組共同開發,各環節之間依賴性太強。

在asp.net中我們可以利用后臺編碼,把html用戶界面設計(顏色、美學等)與頁面代碼區分開來。這樣就可以解決我們小組的并行開發問題。

其主題思想是:美工來進行網站頁面的設計,程序員對網站要實現的功能分模塊開發。待到頁面和功能模塊開發完畢后,我們只要在美工界面中對其html代碼稍加修改,就可以完成對應的功能。

下面就用一個小例子來進行說明。



程序員完成的功能有如下模塊:

1. 在左邊的column1處點擊,中間的三個內容顯示小組三條新聞

2. 在column2處點擊,中間的三個內容顯示三個人員情況

3. 在column3處點擊,彈出一個窗口顯示一張照片。

為了測試,我們可以將這三個功能分別交給兩個程序員來做。

甲程序員:完成模塊1和2

1. 甲可以先建立一個webapplication,在界面上放入兩個imagebutton:ibtnnews,ibtnmember和六個label:lb1title,lb1detail, lb2title,lb2detail, lb3title,lb3detail。生成一個web應用程序,點擊ibnews,六個label顯示小組新聞,點擊ibmember,六個label顯示小組三名成員。這樣我們就為建立源文件創建好了條件。

2. 我們建立一個c#類文件codebehind.cs。

3. 由于我們是建立的web程序,則需要在添加引用中,添加system.web.dll應用。

4. 去掉構造函數,因為后臺編碼不需要創建類。

5. 讓類從page對象上繼承功能,即

public class codebehind:system.web.ui.page

6. 將剛才生成的webapplication中的相關代碼復制進來,主要有兩個部分:聲明部分和方法部分,在這里把應用程序中的可訪問級別protected,改為public,因為只有這樣外部的代碼才可以訪問我們的方法和變量,要注意的是頁面上所有與后臺編碼文件交戶的控件都要有一個對應的本地變量。

7. 生成一個codebehind.cs。

至此,甲程序員的工作完成。乙程序員可以用同樣的方式生成他的codebehind.cs文件。甲乙兩位程序員進行代碼合成,完成一個完整的codebehinde.cs;

代碼如下:

using system;

using system.web.ui;

using system.web.ui.webcontrols;



namespace codetest

{

public class news:system.web.ui.page

{

public system.web.ui.webcontrols.label lb1title;

public system.web.ui.webcontrols.label lb1detail;

public system.web.ui.webcontrols.label lb2title;

public system.web.ui.webcontrols.label lb2detail;

public system.web.ui.webcontrols.label lb3title;

public system.web.ui.webcontrols.label lb3detail;

public system.web.ui.webcontrols.imagebutton ibtnnews;

public system.web.ui.webcontrols.imagebutton iibtnmember;

public system.web.ui.webcontrols.imagebutton ibtncontact;



public void ibtnnews_click(object sender, system.web.ui.imageclickeventargs e)

{

…………………………

}



public void iibtnmember_click(object sender, system.web.ui.imageclickeventargs e)

{

…………………………

}





public void ibtncontact_click(object sender, system.web.ui.imageclickeventargs e)

{

string strscript="<script language=javascript>/n";

strscript+="window.alert("+"/"電話:66763467/""+");";

strscript+="</script>";

response.write(strscript);

}



}

}

下面我們來說明如何將建好的后臺代碼和美工好的網頁結合起來。

1.集成工程師生成一個新的webapplication,將codebehind.cs文件保存在bin目錄下,并將其加入引用。

2.集成工程師將美工好的網頁的圖片加入對應的引用,復制html代碼,放入新的webapplication的頁面中,這樣,我們就可以看到美工好的頁面展現在我們的.aspx文件中。

3.更改頁面最上面的黃色代碼,其中codebehind="codebehind.cs":讓頁面后臺支持的代碼指向我們寫好的cs文件。inherits="codetest.codebehind":讓頁面繼承于類codebehind中的功能,codetest為我們定義的名詞空間。

4.在html代碼中<body>內填入< form id="form1" method="post" runat="server">在</body>上面加上</form>。

5.相對應的地方拖入web控件,注意這里的id要與cs文件中的定義對應。

6.在html代碼中,找到web控件,添加對應的方法名稱。

這樣就結合完畢。運行看看效果如何。





大家看上面在改動html代碼的時候稍顯麻煩,我們還有一種更簡單的方法,只要在后臺文件中加入幾行代碼,我們就不必在html中找到控件的位置,加入事件引用了。

在后臺文件中加入

protected override void oninit(eventargs e)

//此方法引發init事件,當服務器控件初始化是發生。

{

初始化控件方法()

base.oninit(e);

}

private void初始化控件方法();

{

this.控件名.click+=new eventhandler(控件事件響應方法);

}

上面兩個方法的加入,我們可以看到,只要我們在后臺代碼中加入初始化控件的方法,就可以將對應的事件加入進去,而不用在html代碼中加入事件引用了。同樣,我們將常用的page_load事件也可以實現

只要加入:

private void page_load(object sender,system.eventargs e)

{

代碼;

}

private void初始化控件方法();

{

this.控件名.click+=new system.eventhandler(控件事件響應方法);

this.load+=new system.eventhandler(this.page_load);

}

eventhandler:是表示將處理不包含事件數據的事件的方法。

控件事件響應方法只要符合:方法名(object sender,system.eventargs e)就可以。



目前存在的問題:

1. 如何保持美工所作的效果不因使用了web控件而受影響。

2. 多人在做同一個網頁的時候,只能通過合并cs文件的方法來集成后臺代碼。不利于代碼的維護。





作者blog:http://blog.csdn.net/lfeng15/
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台前县| 孝昌县| 东港市| 吉安县| 盐源县| 留坝县| 石河子市| 探索| 平邑县| 六安市| 商洛市| 东光县| 连云港市| 商洛市| 德阳市| 南华县| 富宁县| 碌曲县| 宣武区| 金沙县| 武隆县| 枣强县| 蓬莱市| 星座| 福安市| 山丹县| 吉安市| 洛扎县| 泗水县| 英吉沙县| 宜黄县| 平塘县| 潢川县| 云和县| 鹤山市| 潍坊市| 乐山市| 迁西县| 德昌县| 谢通门县| 长治县|