C# 更新控件中的asp.net面板可见性
我正在创建一个移动菜单样式的功能 单击图像按钮,如果当前未显示菜单,则应显示菜单,如果当前显示菜单,则应隐藏它C# 更新控件中的asp.net面板可见性,c#,asp.net,updatepanel,C#,Asp.net,Updatepanel,我正在创建一个移动菜单样式的功能 单击图像按钮,如果当前未显示菜单,则应显示菜单,如果当前显示菜单,则应隐藏它 <div class="menuicon"> <asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" /> <asp:HiddenField ID="hd
<div class="menuicon">
<asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
<asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
</div>
<div class="menulist">
<asp:Panel ID="panMenuContainer" runat="server">
<ul>
<li>
<a href="UserAuthentication">Login</a>
</li>
</ul>
</asp:Panel>
</div>
这工作非常好,但只要我将menuicon和menulist div封装在更新面板中,它就会停止工作:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="menuicon">
<asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
<asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
</div>
<div class="menulist">
<asp:Panel ID="panMenuContainer" runat="server">
<ul>
<li>
<a href="UserAuthentication">Login</a>
</li>
</ul>
</asp:Panel>
</div>
</ContentTemplate>
</asp:UpdatePanel>
我还使用异步触发器将menubtn放在更新面板之外,但这也不起作用
<div class="menuicon">
<asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
<asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="menulist">
<asp:Panel ID="panMenuContainer" runat="server">
<ul>
<li>
<a href="UserAuthentication">Login</a>
</li>
</ul>
</asp:Panel>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="menubtn" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
仅仅为了显示或隐藏菜单而进行页面回发似乎完全不能令人满意
有人能提出解决这个问题的建议吗?我确信我以前在更新面板中工作过面板可见性。当您将更新面板更改为如下所示时会发生什么
<form id="form1" runat="server">
<ajaxToolkit:ToolkitScriptManager ID="tsm" runat="server"></ajaxToolkit:ToolkitScriptManager>
<div>
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
</div>
....the rest of your code etc..
..其余的代码等。。
我需要看看html标记的其余部分是什么样子的,但是我刚刚测试了这个,有没有
和表单标记中包含的UpdatePanel,它可以工作 您需要更改一些代码作为示例
<div class="menuicon">
<asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
<asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="menulist">
<asp:Panel ID="panMenuContainer" runat="server">
<ul>
<li>
<a href="UserAuthentication">Login</a>
</li>
</ul>
</asp:Panel>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="menubtn" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
谢谢你的建议-不幸的是,这没有任何区别:仍然无法使用更新面板。@Dave你是否尝试过查看此链接?你可能忽略了一些东西,实际上看起来你需要将更新面板包装成一个
。我想我们使用的是不同的版本:我的AjaxToolkit没有脚本管理器我使用的是标准的asp:ScriptManager,但不幸的是它不起作用。asp:ScriptManager和ajax ScriptManager是两种不同的东西耶-我无法开始理解它,但我很高兴它起作用了!谢谢您的帮助和建议。请参阅我的更新。我在示例中没有使用此选项,因为UpdatePanel会导致部分回发,我不确定您为什么需要触发异步回发。也许您可以解释一下\
<div class="menuicon">
<asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
<asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="menulist">
<asp:Panel ID="panMenuContainer" runat="server">
<ul>
<li>
<a href="UserAuthentication">Login</a>
</li>
</ul>
</asp:Panel>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="menubtn" EventName="Click" />
</Triggers>
</asp:UpdatePanel>