在页面生命周期中,我们可以分配母版页

本文关键字:我们 分配 母版页 生命 周期 | 更新日期: 2023-09-27 18:09:09

我知道ViewState在LoadViewSate方法中的InitComplete和Preload事件之间可用。类似地,我想知道在哪个页面生命周期事件中我们可以为特定页面分配母版页?

在页面生命周期中,我们可以分配母版页

因为母版页和内容页在初始化阶段的页面处理,必须有一个母版页在那之前分配。通常,动态地分配母版页PreInit阶段

On Page PreInit event

void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "~/MyMaster.master";
}

阅读使用ASP。编程的。NET母版页

From: ASP。. NET页面生命周期概述

页面事件典型使用

PreInit

在启动阶段完成之后,初始化阶段开始之前引发。

检查IsPostBack属性以确定这是否是第一次处理该页。IsCallback和IsCrossPagePostBack属性也已经设置好了。

  • 创建或重新创建动态控件
  • 动态设置母版页
  • 动态设置主题属性
  • 读取或设置配置文件属性值。

注意如果请求是回发,则控件的值尚未从视图状态恢复。如果在此阶段设置控件属性,则其值可能在下一个事件中被覆盖。

From:动态加载母版页

除了声明性地指定母版页(在 @ Page directive or in the configuration file 中)之外,还可以动态地将母版页附加到内容页。由于母版页和内容页是在页面处理的初始化阶段合并的,因此必须在此之前分配母版页。通常,您可以在PreInit阶段动态地分配母版页,如下面的示例所示:

void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "~/DefaultMaster.master";
}
编辑:

来源: ASP。. NET母版页-母版页如何工作
你也可以使用@Page指令来指定母版页。

<% @ Page Language="C#" MasterPageFile="~/Master.master" Title="Content Page 1" %>