母版页嵌套子母版页通信

    vs2005开始就已经有支持母版页了,常常我们在应用的过程当中会需要嵌套多个母版页,因为它实在是好用。

这就出现了母版页嵌套子母版页的状况,那么继承自子母版页的内容页需要与其通信的问题就接踵而至。

举例说明:前提母版页MasterPage.master,子母版页ChildPage.master,含有一GridView控件,继承自MasterPage.master的内容页Index.aspx,继承自ChildPage.master的内容页ContentPage.aspx。

目标:内容页ContentPage.aspx调用ChildPage.master的GridView控件并初始化(内容页与嵌套母版页的通信)。

 

1、母版页MasterPage.master代码:

 

2、子母版页ChildPage.master(继承自MasterPage.master)页面代码:

第一句代码<%@ Master Language="C#" AutoEventWireup="true" CodeFile="ChildPage.master.cs" Inherits="ChildPage"  MasterPageFile="~/MasterPage.master" %>

就是对母版页MasterPage.master的继承(即嵌套到母版页MasterPage.master中)

该页中有一个GridView控件,ID为"gv_ChildMenu"

3、继承自子母版页ChildPage.master的内容页Content.aspx页面代码:

4、内容页content.aspx初始化childPage.master的GridView控件

按正常思路:内容页调用母版页应该用这段代码即可


GridView dl = this.Master.FindControl("gv_ChildMenu") as GridView;

就可以得到ChildPage.master的GridView控件对象。

但是ChildPage.master本身是继承自母版页MasterPage.master,所以上述的代码无法得到GridView对象

页必须这样写:

 ContentPlaceHolder cont = this.Master.Master.FindControl("ContentPlaceHolderMain") as ContentPlaceHolder;
        GridView dl = cont.FindControl("gv_ChildMenu") as GridView;

 

先获取Masterpage.master的ContentPlaceHolder对象,然后再通过该对象寻找childPage.master的GridView控

件对象,然后进行初始化。

 

详细源码示例下载地址:http://download.csdn.net/source/2077818

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值