在母版页中隐藏用户控件

本文关键字:用户 控件 隐藏 母版页 | 更新日期: 2023-09-27 18:01:16

我有一个usercontrol,它存在于我的web应用程序的所有页面。

我想把这个用户控件隐藏在一个页面中。

我在master上有这个用户控件。master:

<%@ Register Src="~/LCSK/LiveSupportChat.ascx" TagPrefix="lc2" TagName="chat" %>

…在里面,我称之为:

 <lc2:chat runat="server" ID="ClientUserControl" Visible="true" />

然后我有我的aspx页面,我想隐藏userControl.

aspx页有另一个母版页(不同于master.master):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LiveSupportChat.aspx.cs" Inherits="TrainReadyV3.LiveSupportChat" MasterPageFile="~/App.Master" %>

在app。master中有:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="App.master.cs" Inherits="TrainReadyV3.App" MasterPageFile="~/master.Master" %>

我如何从master访问用户控件,并在用户访问livessupportaspx时隐藏它?

在母版页中隐藏用户控件

如果你想获得母版页你可以这样做,但我不明白,你有母版页在母版页还是?

foreach (Control a in Page.Master.Controls)
        {
            foreach (Control c in Master.Controls)
            {
                if (c.UniqueID == "form1")
                {
                    foreach (Control b in c.Controls)
                    {
                        if (b.UniqueID.Contains("header"))
                        {
                            b.Visible = false;
                        }
                    }
                }
            }
        }

我认为以下做法更有可能奏效:

  ContentPlaceHolder cp = this.Master.Master.FindControl("MainContent") as  ContentPlaceHolder;
  Control uc= cp.FindControl("ClientUserControl") as Control;

你的主(最顶层)主页有一个内容占位符,如:

<asp:ContentPlaceHolder ID="MainContent" runat="server" />