gpt4 book ai didi

c# - 更新控件中的 asp.net 面板可见性

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:13 26 4
gpt4 key购买 nike

我正在创建一个移动菜单样式函数。

单击图像按钮,如果当前未显示菜单,则应显示菜单,如果当前显示菜单,则应将其隐藏。

<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>

menubtn 点击事件:

if(hdfMenuStatus.Value == "menudown")
{
panMenuContainer.Visible = true;
hdfMenuStatus.Value = "menuup";
}
else
{
panMenuContainer.Visible = false;
hdfMenuStatus.Value = "menudown";
}

这绝对没问题,但是一旦我将 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>

仅仅为了显示或隐藏菜单而进行页面回发似乎完全不能令人满意。

有人可以建议什么可以解决这个问题吗?我确定我之前在更新面板中使用过面板可见性。

最佳答案

当您将 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 标记的其余部分是什么样的,但我只是在使用和不使用 <ajaxToolkit:ToolkitScriptManager> 的情况下对其进行了测试和包含在表单标签内的 UpdatePanel,并且它有效..

关于c# - 更新控件中的 asp.net 面板可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34496319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com