ddc
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
广州网站建设 上海网站设计 网站建设 上海网站建设 网站建设 广州网站设计 虚拟主机 域名注册 虚拟主机 广州网站建设 虚拟主机 域名注册 ACG动漫家园 ACG大玩家 上海网站建设 品牌设计 网站建设
网站建设
网站建设
品牌设计
中国设计秀
中国设计秀企业频道
时代网
中资源
当前位置:网络学院首页 >> 编程开发 >> .net >> 在ASP.NET2.0中实现主页嵌套

在ASP.NET2.0中实现主页嵌套 (2)

来源:中国设计秀    作者:    点击:30     加入收藏    发表评论
0
顶一下

   从上面的代码可以看出其中引用了标准主页WebsiteMasterPage.master。而且还定义了一个服务端控件来引用在标准主页中定义的ContentPlaceHolder的ID(ID为Main)。由于部门主页被嵌套在标准主页中,因此,必须使用Content服务端控件。还有就是必须加入ContentPlaceHolder控件,这个控件指示了部门主页显示的位置。

    现在这个部门主页已经被嵌入到标准主页中了。部门的主页可以自动继承标准主页的Logo、注脚和菜单。如果要更换这些公共的元素,只需更新这个标准主页即可。而且各部门也可根据自己的需要来更新内嵌在标准主页的部门主页。程序运行界面如图1所示。

在ASP.NET2.0中实现主页嵌套

图1

在Visual Studio2005中使用嵌套主页

  我们从上面的部门主页代码中可以看到,MasterPageFile属性引用了标准主页。但这个属性在Visual Studio2005中并不支持可视化编辑。因此,要想在VS2005的设计视图中编辑主页,必须将MasterPageFile设为空串。如下面的代码如示:

   

以下是引用片段:
<%@ Page Language="C#" MasterPageFile="" Title="部门主页" %>

  当我们将MasterPageFile设为空串后,在每次更新标准主页后在发布时都得手工来修改这个属性。如果不想这么麻烦的话,可以通过一些手段来欺骗一个Visual Studio .NET的设计视图。首先建立一个从System.Web.UI.Page继承的类(将这个类命名为BasePage)。在这个类中定义一个RuntimeMasterPageFile属性(这个属性可以使用任何名子)。实现代码如下:

以下是引用片段:
public class BasePage : System.Web.UI.Page {
        private string _RuntimeMasterPageFile;
 
        public string RuntimeMasterPageFile {
            get {
                return _RuntimeMasterPageFile;
            }
            set {
                _RuntimeMasterPageFile = value;
            }
        }
 
        protected override void OnPreInit(EventArgs e) {
            if (_RuntimeMasterPageFile != null) {
                this.MasterPageFile = _RuntimeMasterPageFile;
            }
            base.OnPreInit(e);
        }
    }
 

    BasePage还重载了OnPreInit方法,以便在Aspx页装载时可以动态地设置MasterPageFile属性。实现了BasePage类后,以后需要内嵌的aspx中的类就可以直接从BasePage继承了。

以下是引用片段:
    public partial class MyNestedMaster : BasePage {
 
        // 具体的实现代码
    }
 

    下面我们来修改.aspx文件。首先将MasterPageFile属性设为空串,并且将RuntimeMasterPageFile属性直接加到aspx文件中,并将它的值设为内嵌主页的路径。然后设置CodeFileBaseClass属性为"BasePage",实现代码如下:

以下是引用片段:
<%@ Page Language="C#"   MasterPageFile=""
RuntimeMasterPageFile="~/Templates/NestedMasterPage.master"
CodeFileBaseClass="BasePage"
Inherits="MyNestedMasterAndBasePage" AutoEventWireup="true"
CodeFile="MyNestedMasterAndBasePage.aspx.cs Title="Page1" %>
 
<asp:Content ID="ContentNested" runat="server" ContentPlaceHolderID="NestedMain">
<p> &nbsp;</p> <p> &nbsp;</p>
   财务部主页
<p> &nbsp;</p> <p> &nbsp;</p>
</asp:Content>

  在运行时,BasePage类将被实例化,而MasterPageFile属性将被动态地设置为RuntimeMasterPageFile属性的值。

[1] [2]
2007-03-09 17:07:00    出处:网页设计秀Cnwebshow.com整理
Google
热点文章/相关文章

音乐
嫁衣 画心 放生 天亮了 牡丹江 那滋味 擦肩而过 怀念过去 北京欢迎你 突然好想你 吻的太逼真 说好的幸福呢 坐上火车去拉萨 没有人比我更爱你
愚爱 心碎 稻香 带我走 醉赤壁 魔杰座 我还想她 明天过后 一定要爱你 等爱的玫瑰 原谅我一次 越单纯越幸福 最后一次的温柔 给我一首歌的时间
白狐 光荣 降临 下雨天 小酒窝 樱花草 恋爱新手 说唱脸谱 红色高跟鞋 寂寞才说爱 深深爱过你 爱上你是个错 即使知道要见面 不是因为寂寞才想你
城府 假如 花海 兰亭序 棉花糖 舍不得 最后一次 女人如烟 外滩十八号 我们的纪念 我们的无奈 心在跳情在烧 爱上你是我的错 爱情里没有谁对谁错
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口