访问母版页控件、属性、方法及母版页中调用内容页的方法

首先,必须通过内容页中的MasterTye指令,对母版页实施强类型化,即在内容页代码头的设置中增加如下指令

<%@ MasterType VirtualPath="~/Master/MenuElement.master" %>

其中VirtualPath设置母版页URL地址。


1.     获取母版页控件引用。

示例代码:

/// <summary>

    
/// 获取对项目元素结构树的引用

    
/// </summary>

    
public TreeView ElementStructureTree

    {

        
get

        {

            
return tvElementStructure;

        }

        
set

        {

            tvElementStructure 
= value;

        }

}

如上代码所示,在母版页中定义一个公共属性ElementStructureTree,该属引用了母版页中tvElementStructure控 件,然后在内容页中就可以通过公共属性Master(核心对象Page的一个属性)来引用母版页中tvElementStructure控件,如下:

TreeView tv = Master.ElementStructureTree;

2.     访问母版页属性。

母版页中的属性一般有三种:值类型、类类型、控件类型,上面的“获取母版页控件引用”实际上就是访问控件类型属性,其它两种类型的属性可以用同样的方法访问。

3.     调用母版页方法。

母版页中定义的公共方法可以通过Master直接调用。

4.     母版页中调用内容页的方法。

母版页中定义委托:

public delegate void ElementSelectedChangeHandler();

母版页中实例化委托(又是一个属性):

public ElementSelectedChangeHandler ElementSelectedChange ;

在母版页中需要的地方调用委托:

if (ElementSelectedChange != null)

        {

            ElementSelectedChange();

        }

内容页中指定一个与委托签名匹配的方法:

Master.ElementSelectedChange = this.ElementSelectedChange; 

注:如果调试时提示有错,可以先切换成设计界面,再切换回来就会应用成功,调试时就不会有错了.

原文地址:https://www.cnblogs.com/wudingfeng/p/1446728.html