我在 C# 中有一个非常大的 ASP.NET 应用程序。
这个问题很简单但很困难/很奇怪。无论我在代码中的哪个位置尝试更改按钮的可见性,无论我将其设置为 true 还是 false,它都会保留其默认值。
我不确定是什么原因造成的,所以我想我可能会在这里征求意见。
我在 C# 中有一个非常大的 ASP.NET 应用程序。
这个问题很简单但很困难/很奇怪。无论我在代码中的哪个位置尝试更改按钮的可见性,无论我将其设置为 true 还是 false,它都会保留其默认值。
我不确定是什么原因造成的,所以我想我可能会在这里征求意见。
该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
,子控件是不可见的。