母版页嵌套子母版页通信

本文详细介绍了在ASP.NET MVC框架中如何实现母版页嵌套及内容页与嵌套母版页中GridView控件的通信过程。通过实例演示了如何在内容页初始化子母版页中的控件,特别关注了母版页继承和控件查找的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    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.youkuaiyun.com/source/2077818

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值