在ASP.NET中设置母版页

在ASP.NET中设置母版页,第1张

   在许多情况下 我们需要根据项目的运行情况 在页面运行时才决定使用哪个母版页 例如在企业管理系统中 我们要求公司的某个部门需要使用一个母版页 而其他部门则使用另外一个母版页 显然 这时候前面母版页调用方式是不能够满足的 它要求我们必须以编程方式来动态设置母版页         其实 通过编程方式来动态设置母版页非常方便 你只需设置Page MasterPageFile属性就可以了 但这一步必须在Page Init事件阶段完成 在这之后 再设置这一属性会产生一个异常 如下面的代码所示         protected void Page_PreInit(object sender EventArgs e)        {        Page MasterPageFile = ~/Test Master         }        如果你将Page MasterPageFile属性设置在Page_Load事件里 页面将会提示错误信息 The MasterPageFile property can only be set in or before the Page_PreInit event 因此 你必须将Page MasterPageFile属性设置在Page Init事件里         在使用以编程方式来动态设置母版页时 还必须注意如下几点         )确保在nfig文件中或者内容页面的@Page指令中没有引用MasterPageFile的<pages>元素 只有这样才会得到成功加载的页面 并且引入了母版页         )确保内容页面没有使用MasterType指令来创建对母版页的强类型引用         )确保内容页面和所设置的的母版页完全兼容 lishixinzhi/Article/program/net/201311/11384

虽然母版页和内容页功能强大 但是其创建和应用过程并不复杂 本节和下一节将以创建如图 所示示例为例 向读者详细介绍 使用Visual Stuido 创建母版页和内容页的方法以及相关知识 本节的重点是创建母版页的方法 母版页中包含的是页面公共部分 即网页模板 因此 在创建示例之前 必须判断哪些内容是页面公共部分 这就需要从分析页面结构开始 图 所示显示的是一个页面截图 在下文中 暂称该页面名为Index aspx 并且假设其为某网站中的一页 通过分析可知 该页面的结构如图 所示 图 页面结构图页面Index aspx由 个部分组成 页头 页尾 内容 和内容 其中页头和页尾是Index aspx所在网站中页面的公共部分 网站中许多页面都包含相同的页头和页尾 内容 和内容 是页面的非公共部分 是Index aspx页面所独有的 结合母版页和内容页的有关知识可知 如果使用母版页和内容页来创建页面Index aspx 那么必须创建一个母版页MasterPage master和一个内容页Index aspx 其中母版页包含页头和页尾等内容 内容页中则包含内容 和内容 使用Visual Studio 创建一个普通Web站点 然后 在站点根目录下创建一个名为MasterPage master的母版页 由于这是一个添加新文件的过程 因此 单击 网站 命令菜单中的 添加新项 选项 可以打开如图 所示的窗口 图 添加母版页由于此例创建的是母版页 因此 需要选择母版页图标 并且设置文件名为MasterPage master 需要注意的是 该窗口中还有一个复选框项 将代码放在单独的文件中 默认情况下 该复选框处于选中状态 表示Visual Studio 将会为MasterPage master文件应用代码隐藏模型 即在创建MasterPage master文件的基础上 自动创建一个与该文件相关的MasterPage master cs文件 如果不选中该项 那么只会创建一个MasterPage master文件而已 建议读者选取该项 在创建MasterPage master文件之后 接着就可以开始编辑该文件了 根据前文说明 母版页中只包含页面公共部分 因此 MasterPage master中主要包含的是页头和页尾的代码 具体源代码如下所示

lishixinzhi/Article/program/net/201311/12290

在项目里面和网站中的一样的,需要在你要引用的页面头部加一下属性:MasterPageFile="~/你

母版页

的文件名字",然后就可以在下面的代码中使用了:<asp:Content

ContentPlaceHolderID="母版页里面的ContentPlaceHolder的ID"

runat="server">

引用页的代码:

<%@

Page

Language="C#"

AutoEventWireup="true"

CodeFile="test.aspx.cs"

Inherits="test"

MasterPageFile="~/MasterPage.master"

%>

<asp:Content

ContentPlaceHolderID="content"

runat="server">

</asp:Content>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11864917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存