Vlastnost Visible třídy Control používáme k zobrazení a skrytí controlu ve stránce. Dokumentace říká něco mírně komplikovanějšího: Gets or sets a value that indicates whether a server control is rendered as UI on the page. Tato zdánlivá komplikovanost má zásadní význam. Getter property totiž vrací false, pokud je skrytý control nebo některý z jeho rodičů ve stromu controlů.
Z mého pohledu jde o dosti nezvyklé a vůči ostatním vlastnostem nekonzistentní chování. Neočekával bych, že po nastavení vlastnosti na true budu číst false. Doporučuji tedy s vlastností Visible pracovat náležitě opatrně.
Příklad
Mějme dva panely (PrvniPanel a DruhyPanel), přičemž chceme, aby byl vidět právě jeden z nich. Oba panely jsou obaleny vnějším panelem.
<asp:Panel ID="VnejsiPanel" Visible="false" runat="server"> <asp:Panel ID="PrvniPanel" runat="server"> ... </asp:Panel> <asp:Panel ID="DruhyPanel" runat="server"> ... </asp:Panel> </asp:Panel>
PrvniPanel.Visible = true; // nějaký výraz, který tentokrát vrací true DruhyPanel.Visible = !PrvniPanel.Visible VnejsiPanel.Visible = true;