用户名: 密码: 免费注册 忘记密码? 网站地图 | 加入收藏 | 设为首页
首页 | 新闻 | 工具 | 系统 | 办公 | 聊天 | 多媒体 | 网页 | 运营 | 平面 | 欣赏 | 数据库 | 程序 | 服务器 | 组网
网页 | 3dmax | Ghost | Windows Xp| Dreamweaver | photoshop | Flash | office | Alexa | Css | QQ | Asp | PHP | Jsp | Access
Flash MX 2004入门 | 网站推广策略 | CorelDRAW入门 | ASP学习 | 网站建设大师功 | Word入门
  iTbulo.com > 学院 > 程序开发教程 > ASP.net教程 > Asp.Net实例教程 > 文章正文
原创:在ASP.NET2.0中实现主页嵌套
iTbulo.COM 2007-3-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] 

文章搜索
相关资讯
相关文章 相关下载
在ASP.NET中上传图片并生成缩略图
Excel在.Net下驻留内存的解决方法
ASP.NET中常用的优化性能方法详解
网友原创:从N层到.NET详细剖析原理
经验之谈:MySQL与ASP.NET配合更强大
焦点信息