从更新面板后面的代码中设置更新面板内面板的可见性

本文关键字:更新 可见性 设置 代码 | 更新日期: 2023-09-27 18:15:10

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

奇怪的是,如果我在Visual studio中调试这个,并且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;)
}

从更新面板后面的代码中设置更新面板内面板的可见性

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

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