2014-07-25 54 views
0

我已简化并可能在下面输入了一个或多个错字,但我试图显示并隐藏pnl2的可见性,但此代码无效。我认为只要面板在另一个更新面板中,我可以控制能见度。设置面板内部更新面板的可见性来自更新面板后面的代码

奇怪的是,如果我在Visual Studio中调试它,并通过它完全显示F10,它会正确显示可见性,但是当我打开Last F10并加载页面时,它总是不正确。

<asp:UpdatePanel runat="server" UpdateMode="Always" ID="updPanel1"> 
<ContentTemplate> 
<asp:Panel runat="Server" ID="pnl1"/> 
<asp:Button runat="Server" ID="hidePanel2" OnClick="HidePanel2"/> 
</ContentTemplate> 
</UpdatePanel> 


<asp:UpdatePanel runat="server" UpdateMode="Always" ID="updPanel2"> 
<ContentTemplate> 
<asp:Panel runat="Server" ID="pnl2"/> 
</ContentTemplate> 
</UpdatePanel> 

protected void hidePanel2(object sender, EventArgs e) 
{ 
if (pnl2.Visible == true) 
{ 
    pnl2.Visible = false; 
}else 
{ 
    pnl2.Visible = true;) 
} 
+0

1.您确定pnl2.Visible未在代码中的其他位置设置。 – Sev

+0

2.为什么你在? – Sev

+0

是的,正如我所说,我走过去并添加了一块手表,我逐字地走到最后,它从未改变过。 –

回答

0

的问题是,你正试图从一个按钮,是在一个名为“updPanel1”在UpdatePanel更新“PNL2”的知名度。按钮“hidePanel2”的回发仅导致更新面板“updPanel1”的内容改变。表单的其余部分(包括更新面板“updPanel2”)不会更改。

如果两个面板彼此相邻,最直接的解决方案是将它们放在一个更新面板中。如果你有其他的布局,那么在我们提供帮助之前,你需要解释它是什么。