如何在 C# Web 表单应用程序的回发时保持侧导航栏隐藏?
Posted
技术标签:
【中文标题】如何在 C# Web 表单应用程序的回发时保持侧导航栏隐藏?【英文标题】:How to Keep Side Navigation Bar Hidden on Post Back in C# web forms application? 【发布时间】:2020-08-17 13:57:12 【问题描述】:我有一个带有侧边导航栏的 C# webforms 应用程序,默认情况下会显示该导航栏,但是在单击切换按钮时它会被隐藏并在再次单击切换按钮时显示。
我的 site.master 页面中的 javascript
$(document).ready(function ()
if ($('#PanelState').attr('value') == 'false')
$('#sidebar').addClass('hiddencol');
$('#sidebarCollapse').on('click', function ()
$('#sidebar').toggleClass('active');
if ($('#sidebar').hasClass('active'))
$('#PanelState').attr('value', true);
else
$('#PanelState').attr('value', false);
);
);
CSS
#sidebar
min-width: 300px;
max-width: 300px;
height:100vh;
background: #158CBA;
color: white;
transition: all 0.3s;
#sidebar.active
margin-left: -300px;
.hiddencol
display: none;
aspx隐藏字段
<asp:hiddenfield id="PanelState" runat="server" value="true" ClientIDMode="static" />
但每次回帖后侧边导航栏如果之前隐藏,则不会一直隐藏
【问题讨论】:
请看下面的答案。由于您的属性不是永久的,它会在回发后恢复到原来的值。将状态保存到页面的一部分,该部分将在回发后保留其值,例如隐藏字段。 ASP.Net 控件具有“视图状态”,这是在回发后保持值不变的原因。 【参考方案1】:尝试使用隐藏字段:
<asp:HiddenField ID="SidebarState" runat="server" ClientIDMode="Static" />
【讨论】:
嗨,我尝试使用隐藏字段,但仍然得到相同的结果。我已通过更改更新了我的问题以上是关于如何在 C# Web 表单应用程序的回发时保持侧导航栏隐藏?的主要内容,如果未能解决你的问题,请参考以下文章