正在閱讀:Asp.net1.1實(shí)現(xiàn)仿2.0 MasterPage效果Asp.net1.1實(shí)現(xiàn)仿2.0 MasterPage效果

2005-09-21 10:10 出處:PConline 作者:Kgdiwss 責(zé)任編輯:moningfeng

  相關(guān)推薦用Asp.net制作頂部導(dǎo)航控件      ASP.Net開發(fā)新手常見問題備忘錄

  在Asp.net 2.0中,提供了一個MasterPage的功能,它可以讓我們很方便的完成頁面的整體結(jié)構(gòu)相同的網(wǎng)站,而且后期修改界面的時候只要修改一下MasterPage即可,無需一個個界面進(jìn)行修改,這樣就大大的方便了開發(fā)人員.其實(shí)類似這種技術(shù)在Asp.net1.1中也可以實(shí)現(xiàn).

一、 思路分析
  對于可以用MastetrPage的網(wǎng)站來說,它的頁面結(jié)構(gòu)大部份是一至的,比如頂部、底部都是一樣的,只不過左右側(cè)顯示的內(nèi)容不同。這個時候,你不妨把左右兩側(cè)的內(nèi)容也分別放在用戶控件中,然后根據(jù)當(dāng)前的訪問地址來動態(tài)加載用戶控件,這樣到時候只要修改動態(tài)加載的用戶控件的內(nèi)容,或是MasterPage的框架,即可實(shí)現(xiàn)修理網(wǎng)站的目的。

二、 實(shí)現(xiàn)過程
  首先取得當(dāng)前訪問的文件地址,代碼如下:

//取得當(dāng)前訪問的路徑
string strRequestUrl = Request.Url.AbsolutePath.ToString();
//取得當(dāng)前訪問的文件名,并轉(zhuǎn)換成小寫
string strNowViewFile = strRequestUrl.Substring((strRequestUrl.LastIndexOf(@"/") + 1)).Trim().ToLower();


  然后點(diǎn)擊“添加添加Web用戶控件”新建三個用戶控件,分別命名為MasterPage.ascx、Head.ascx和Foot.ascx,在MasterPage.ascx中添加一個三行兩列的表格,然后將Head.ascx和Foot.ascx控件拖到MasterPage.ascx中,同時在左右兩側(cè)均添加一個PlaceHolder控件,分別命名為hldLeftControl和hldRightControl,完成后效果如下:

Head.ascx

hldLeftControl

hldRightControl

Foot.ascx


  此時只要將MasterPage.ascx拖到具體的頁面中,比如Index.aspx,運(yùn)行后就會顯示頂部、底部的內(nèi)容。接下來要根據(jù)當(dāng)前訪問的文件地址,確定動態(tài)加載哪些用戶控件到左右兩側(cè)位置,這部份操作在MasterPage.ascx.cs中完成。代碼如下:

switch(strNowViewFile)
{
//如果當(dāng)前訪問的是首頁
case "index.aspx":
//創(chuàng)建用戶控件類的對象,類名與用戶控件的名稱是相同的
Control_Index_IndexRightControl indexRightControl;
//加載用戶控件
indexRightControl = (Control_Index_IndexRightControl)Page.LoadControl("Control_Index_IndexRightControl.ascx");
//在右側(cè)的PlaceHolder控件中顯示用戶控件
plhRightControl.Controls.Add(indexRightControl);
break;
//加載會員注冊部份
case "Register.aspx":
Control_Login_Register register;
register = (Control_Login_Register)Page.LoadControl("Control_Login_Register.ascx");
plhRightControl.Controls.Add(register);
break;
default:
indexRightControl = (Control_Index_IndexRightControl)Page.LoadControl("Control_Index_IndexRightControl.ascx");
plhRightControl.Controls.Add(indexRightControl);
break;
}


  添加了以上代碼后,如果訪問的頁面是index.aspx,在index.aspx頁右側(cè),就會加載Control_Index_IndexRightControl.ascx控件的內(nèi)容,如果訪問的是Register.aspx頁,右側(cè)就會加載Control_Login_Register.ascx控件的內(nèi)容.這樣就實(shí)現(xiàn)了類似MasterPage的功能.
302 Found

302 Found


Powered by Tengine
tengine

相關(guān)文章

302 Found

302 Found


Powered by Tengine
tengine