0

我在 C# 中有一个非常大的 ASP.NET 应用程序。

这个问题很简单但很困难/很奇怪。无论我在代码中的哪个位置尝试更改按钮的可见性,无论我将其设置为 true 还是 false,它都会保留其默认值。

我不确定是什么原因造成的,所以我想我可能会在这里征求意见。

4

1 回答 1

0

Visible属性从父控件继承它的状态。

例如:

<asp:Panel ID="Panel1" Visible="false" runat="server">
   <asp:Button ID="Button1" runat="server" Text="click me" />
</asp:Panel>

Button只要容器控件不可见,它就永远不Panel1可见。

实施Control.Visible

public virtual bool Visible
{
    get
    {
        return !this.flags[16] 
        && (this._parent == null || this.DesignMode || this._parent.Visible);
    }
    set
    {
        // ...
    }
}

所以当 时parent != null && !visible,子控件是不可见的。

于 2012-06-22T13:05:32.987 回答