C# 从更新面板的代码隐藏设置更新面板内部面板的可见性

C# 从更新面板的代码隐藏设置更新面板内部面板的可见性,c#,asp.net,updatepanel,ajaxcontroltoolkit,C#,Asp.net,Updatepanel,Ajaxcontroltoolkit,我已经简化了,下面可能有一两个输入错误,但我试图显示和隐藏pnl2的可见性,但是这段代码不起作用。我想只要面板在另一个更新面板中,我就可以控制可见性 奇怪的是,如果我在VisualStudio中调试它,并且一直调试F10,它会正确地显示可见性,但是当我点击最后一个F10并加载页面时,它总是不正确的 <asp:UpdatePanel runat="server" UpdateMode="Always" ID="updPanel1"> <ContentTemplate> &l

我已经简化了,下面可能有一两个输入错误,但我试图显示和隐藏pnl2的可见性,但是这段代码不起作用。我想只要面板在另一个更新面板中,我就可以控制可见性

奇怪的是,如果我在VisualStudio中调试它,并且一直调试F10,它会正确地显示可见性,但是当我点击最后一个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;)
}

问题是您正试图从名为“updPanel1”的UpdatePanel中的按钮更新“pnl2”的可见性。按钮“hidePanel2”的回发只会导致更新面板“updPanel1”的内容发生更改。表单的其余部分,包括更新面板“updPanel2”,不会更改


如果两个面板相邻,最直接的解决方案是将它们放在一个更新面板中。如果您有其他布局,则需要先解释它是什么,然后我们才能提供帮助。

1。您确定没有在代码中的任何其他位置设置pnl2.Visible。2。为什么里面没有任何东西?是的,正如我说的,我在里面加了一块手表,我从字面上一直走到最后,它从未改变。只是演示代码,为了便于阅读,对它进行了消毒。当你说它从未改变时,你指的是pnl2的可见性值,即使它被设置为真?