我已经简化了,可能在下面写了一两个错字,但我试图显示和隐藏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 :(得分:0)
问题是您正在尝试从名为“updPanel1”的UpdatePanel中的按钮更新“pnl2”的可见性。按钮“hidePanel2”的回发仅导致更新面板“updPanel1”的内容发生变化。表单的其余部分(包括更新面板“updPanel2”)不会更改。
最直接的解决方案是,如果两个面板彼此相邻,则将它们放在一个更新面板中。如果您有其他布局,那么在我们提供帮助之前您需要解释它是什么。