ASP.NET1.1實現仿2.0的MasterPage功能
在asp.net 2.0中,提供了一個masterpage的功能,它可以讓我們很方便的完成頁面的整體結構相同的網站,而且后期修改界面的時候只要修改一下masterpage即可,無需一個個界面進行修改,這樣就大大的方便了開發人員.其實類似這種技術在asp.net1.1中也可以實現.
思路分析
對于可以用mastespanpage的網站來說,它的頁面結構大部份是一至的,比如頂部、底部都是一樣的,只不過左右側顯示的內容不同。這個時候,你不妨把左右兩側的內容也分別放在用戶控件中,然后根據當前的訪問地址來動態加載用戶控件,這樣到時候只要修改動態加載的用戶控件的內容,或是masterpage的框架,即可實現修理網站的目的。
實現過程
首先取得當前訪問的文件地址,代碼如下:
- //取得當前訪問的路徑
- sspaning sspanrequesturl = request.url.absolutepath.tosspaning();
- //取得當前訪問的文件名,并轉換成小寫
- sspaning sspannowviewfile = sspanrequesturl.subsspaning((sspanrequesturl.lastindexof(@"/") + 1)).trim().tolower();
然后點擊“添加?添加web用戶控件”新建三個用戶控件,分別命名為masterpage.ascx、head.ascx和foot.ascx,在masterpage.ascx中添加一個三行兩列的表格,然后將head.ascx和foot.ascx控件拖到masterpage.ascx中,同時在左右兩側均添加一個placeholder控件,分別命名為hldleftconspanol和hldrightconspanol,完成后效果如下:
- head.ascx hldleftconspanol hldrightconspanol foot.ascx
此時只要將masterpage.ascx拖到具體的頁面中,比如index.aspx,運行后就會顯示頂部、底部的內容。接下來要根據當前訪問的文件地址,確定動態加載哪些用戶控件到左右兩側位置,這部份操作在masterpage.ascx.cs中完成。代碼如下:
- //ASP.NET1.1
- switch(sspannowviewfile)
- {
- //如果當前訪問的是首頁
- case "index.aspx":
- //創建用戶控件類的對象,類名與用戶控件的名稱是相同的
- conspanol_index_indexrightconspanol indexrightconspanol;
- //加載用戶控件
- indexrightconspanol = (conspanol_index_indexrightconspanol)page.loadconspanol("conspanol_index_indexrightconspanol.ascx");
- //在右側的placeholder控件中顯示用戶控件
- plhrightconspanol.conspanols.add(indexrightconspanol);
- break;
- //加載會員注冊部份
- case "register.aspx":
- conspanol_login_register register;
- register = (conspanol_login_register)page.loadconspanol("conspanol_login_register.ascx");
- plhrightconspanol.conspanols.add(register);
- break;
- default:
- indexrightconspanol = (conspanol_index_indexrightconspanol)page.loadconspanol("conspanol_index_indexrightconspanol.ascx");
- plhrightconspanol.conspanols.add(indexrightconspanol);
- break;
- }
添加了以上代碼后,如果訪問的頁面是index.aspx,在index.aspx頁右側,就會加載conspanol_index_indexrightconspanol.ascx控件的內容,如果訪問的是register.aspx頁,右側就會加載conspanol_login_register.ascx控件的內容.
這樣就使得asp.net1.1實現了masterpage的功能.
【編輯推薦】