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
ため、子コントロールは非表示になります。