嵌套母版页中的控件访问
左直拳
嵌套母版页中的控件访问很别扭。
如果一个内容页对应一个没有嵌套的母版页,访问这个母版页上的控件众所周知:类似(Button)Page.Master.FindControl("Button1")
可是这个母版页如果又嵌套在另一个母版页里面,上述语句包你什么东西都访问不到。
假设顶层母版页master0.master有
<asp:contentplaceholder id="SubMaster" runat="server">
</asp:contentplaceholder>
子母版页master1.master有
<asp:Content id="SubMasterList" ContentPlaceholderID="SubMaster" runat="server">
<asp:contentplaceholder id="Main" runat="server">
</asp:contentplaceholder>
<asp:Button ID="Button1" runat="server" Text="Button"/>
</asp:Content>
现在内容页content.aspx结合子母版页master1.master,有
<asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server">
</asp:Content>
这时不论是
(Button)Page.Master.FindControl("Button1")
还是
ContentPlaceHolder direcMaster = (ContentPlaceHolder)Page.Master.FindControl("SubMaster");
Button b1 = (Button)direcMaster.FindControl("Button1");
都无法访问到这个BUTTON。
我折腾来折腾去,最后才知道正确的写法是:
ContentPlaceHolder direcMaster = (ContentPlaceHolder)Page.Master.Master.FindControl("SubMaster");
Button b1 = (Button)direcMaster.FindControl("Button1");
就是说,如果母版页嵌套多少层,Master就应该写多少个。
这样子的话,我认为如果想访问母版页的控件,还不如通过在母版页设置属性来间接访问该控件。一方面,访问方便;另一方面,可屏蔽细节,内容页根本不用关心所用的母版页到底嵌套了多少层。
分享到:
相关推荐
当需要从子页面访问嵌套母版页的控件时,我们需要使用以下方法: 1. **FindControl** 方法:这是最基础的方法,通过递归遍历页面控件树来查找指定的控件。首先从子页面开始,然后向上遍历到父级母版页,直到找到...
本案例主要探讨了如何在一个使用了母版页的页面中查找特定的控件,并验证其类型,最终根据类型决定是否显示该控件。具体步骤如下: 1. **定义内容页**: ```csharp Language="C#" MasterPageFile="~/Item...
在“母版页嵌套母版页通信”中,通常涉及以下几个关键知识点: 1. **母版页定义**:创建母版页时,需要定义一些占位符控件(ContentPlaceHolder),这些控件在内容页中会被替换为具体的内容。例如,可能有一个头部...
本文将深入探讨在Visual Studio 2015中如何使用母版页,以及如何创建嵌套母版页。 首先,我们来理解母版页的基本概念。母版页是一个特殊的ASP.NET网页,其中包含了一个网页的通用布局,如头部、底部、侧边栏等元素...
- 内容页可以插入到母版页的ContentPlaceHolder控件中,允许每个页面有独立的内容区域。 - 通过继承关系,内容页自动获得母版页的所有特性,简化了页面布局和设计。 2. 控件遍历的重要性: - 遍历页面控件可以...
在ASP.NET中,母版页(Master Page)、控件页(User Control)和内容页(Content Page)是构建Web应用程序的重要组成部分,它们提供了强大的布局和重用功能。下面将详细阐述这三个概念及其执行顺序,以及如何通过...
3. **嵌套母版页**:一个母版页可以嵌套另一个母版页,这样可以构建更复杂的布局层次,增强灵活性。 4. **动态数据集成**:.NET 4.0引入了动态数据特性,母版页可以配合使用,提供动态生成的表单和验证功能。 5. *...
8. **嵌套母版页**:ASP.NET 2.0也支持母版页的嵌套,即一个母版页可以有另一个母版页作为其母版。这为更复杂的布局和层次结构提供了灵活性。 9. **动态母版页**:在运行时,可以通过编程方式将内容页与不同的母版...
7. **调试和优化**:在VS08中,开发者可以通过调试工具查看母版页和内容页的嵌套关系,以及它们如何交互。此外,合理使用母版页可以减少代码重复,提高网站性能。 通过以上知识点,我们可以看出ASP.NET母版页在网站...
母版页、站点地图和用户控件是ASP.NET开发中的三个关键概念,它们极大地提高了Web应用程序的可维护性和用户体验。让我们深入探讨这三个概念及其在实际应用中的作用。 首先,母版页(Master Page)是ASP.NET提供的一...
在本例中,我们将详细探讨如何使用递归算法来遍历母版页下的内容页控件,特别是TextBox控件。 首先,我们看到一个名为`IterateThroughChildren`的方法,这个方法是递归遍历控件的核心。它接受一个`Control`类型的...
第10章 母版页技术 420 10.1 母版页基础 421 实例261 创建.master母版页文件 421 实例262 添加内容页 423 ...实例271 嵌套母版页 434 实例272 高速缓存母版页 436 实例273 ASP.NET AJAX和母版页应用 437
母版页中的可编辑区域通过`ContentPlaceHolder`控件来标记,内容页中对应的`Content`控件会填充这些区域。 **2. 创建母版页** 创建母版页的过程通常涉及以下步骤: - 在解决方案资源管理器中,右键点击项目,选择...
非嵌套母版页的情况指的是在没有使用多级母版页结构时的页面控件遍历。 在ASP.NET中,页面控件可以分为服务器控件和HTML控件。服务器控件在服务器端处理,而HTML控件则更接近于标准HTML标记。遍历页面控件通常是...
适用于不涉及复杂嵌套母版页和内容页的情况,或者在客户端代码中需要精确引用控件ID的场景。 2. **Predictable**:对于具有相同父控件的控件,使用递增的数字作为后缀,以确保ID唯一性。这在需要按顺序查找控件时很...
- 母版页中可以包含HTML、CSS和服务器控件,这些元素将在所有使用该母版页的页面上显示。 3. **内容区域(Content Placeholders)** - 内容区域是母版页中的特殊标记,允许内容页插入自己的内容。默认的标记是`...
另外,还可以使用嵌套母版页,为特定页面或部分提供更细致的布局控制。 6. **页面生命周期和事件处理** 当内容页加载时,母版页的生命周期先于内容页执行,这意味着母版页的初始化和加载事件先发生。因此,在母版...
子页面通过在母版页定义的【ContentPlaceHolder】控件中插入内容来实现页面的个性化。你可以将需要在各个子页面中动态更改的页面元素放置在【ContentPlaceHolder】内。 5. 一旦母版页创建并定义了...
在本篇文章中,我们将深入探讨如何在Ajax模板中嵌套控件,并实现特定情况下提示对话框的方法。通过本文,读者可以了解到如何有效地在基于Ajax的Web应用中展示对话框,尤其是在用户验证或需要进行提示信息时的情景下...
2. **内容页中访问母版页控件对象**: 在内容页中,可以使用`FindControl`方法来访问母版页上的控件。首先,通过`Master`属性获取到母版页的引用,然后通过`FindControl`方法寻找具体的控件。例如,如果母版页上有...