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