【发布时间】:2025-11-12 03:45:02
【问题描述】:
我的网页上有一个用于切换菜单的按钮,在回发后,尽管我更新了隐藏字段值以存储其状态,但菜单仍会返回。我在这里做错了吗?如果有更好的方法,请告诉我!
标记:
<asp:Button ID="btnMenu" runat="server" Text="Hide Menu" UseSubmitBehavior="False"
OnClientClick="return toggleMenu(this);" />
<asp:Panel runat="server" ID="pnlMenuToggle">
//Main Menu
</asp:Panel>
<asp:Panel runat="server" ID="pnlSubMenuToggle">
//Sub Menu
</asp:Panel>
<asp:HiddenField ID="hfMenuState" runat="server" Value="true" />
<script>
//Toggles menu visibility
function toggleMenu(menuButton) {
var menuVisible = $('#<%=hfMenuState.ClientID%>').val() == 'true' ? true : false;
$('#<%=pnlMenuToggle.ClientID%>').slideToggleWidth();
$('#<%=pnlSubMenuToggle.ClientID%>').slideToggle('slow');
//Update whether the menu is visible
menuVisible = !menuVisible;
//Update menu button text
$(menuButton).val(menuVisible ? 'Hide Menu' : 'Show Menu');
$('#<%=hfMenuState.ClientID%>').val(menuVisible)
return false;
}
</script>
代码背后:
(页面加载)
bool menu = Convert.ToBoolean( hfMenuState.Value );
pnlMenuToggle.Visible = menu;
pnlSubMenuToggle.Visible = menu;
javascripts 更新隐藏字段的值,但看起来这从未回传到服务器。
我可以做些什么来确保回发后菜单保持隐藏状态。
我还尝试将隐藏字段放在更新模式设置为始终的更新面板中
【问题讨论】:
-
会不会是回帖的原因。 IE。在做任何事情之前检查 IsPostBack 吗?
-
@Holger - 得到它的工作谢谢,检查我的答案:)