【问题标题】:asp:Content still visible when using Visible="False"asp:使用 Visible="False" 时内容仍然可见
【发布时间】:2017-08-21 13:12:12
【问题描述】:

我有一个母版页,里面有一对ContentPlaceHolder,并添加了这个母版页的一些内容页面。

我想在某个页面的一个asp:Content 上设置Visible="False",但它不起作用,因为我仍然能够查看两个asp:Content 控件的数据。

为什么?

母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterBase.Master.cs" Inherits="MasterBase" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

        <html xmlns="http://www.w3.org/1999/xhtml" >
        <head runat="server">          

        </head>        
        <body>
            <form id="form1" runat="server">
                <!-- HEADER -->
                <asp:ContentPlaceHolder ID="head" runat="server" />

                <!-- CONTENT -->
                <asp:ContentPlaceHolder ID="bodyContent" runat="server" />

                <!-- FOOTER -->
                ...
            </form>
        </body>
</html>

内容页面

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server" Visible="False">
      <!-- Some Data -->
</asp:Content>


<asp:Content ID="Content2" ContentPlaceHolderID="bodyContent" runat="server">
     <!-- Some Data -->  
</asp:Content>

【问题讨论】:

  • 在母版页设置 Visible="False" 是否有效?就像一个实验。
  • @Licht 如果我在母版页中设置 Visible="False",那么它将影响我想显示它的其他内容页面。仅在某些特定页面中我想设置 Visible="False"。
  • visible 似乎在asp:content 上被忽略了,您可以将panel 包裹在所需的content 周围并在那里设置visible 状态。这似乎是应用的一般解决方案。
  • @Fran 感谢即兴提出我的问题,如果在 asp:content 上忽略了可见属性,那么内容控件的可见属性有什么用,如果这个可见属性有效,那么它将满足我的要求。
  • @Fran 您是否尝试在content 周围使用panel 来查看它是否有效?更多信息请参见asp:Content Visible Attribute Ignored?

标签: c# asp.net webforms visibility asp.net-controls


【解决方案1】:

试试这个

 mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("Content1");

 mpContentPlaceHolder.Visible=False;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    相关资源
    最近更新 更多