【问题标题】:ASP.NET - preserve style of HTML element after postbackASP.NET - 回发后保留 HTML 元素的样式
【发布时间】:2014-10-15 10:10:48
【问题描述】:

我从 ASP.NET 开发中休息了很长时间。

我在另一个元素的onclick 函数上有一个由 javascript 函数切换的 div。

 <div id="InsDetail" style="display: none">

回发后,div 的状态恢复为折叠状态。在回发之间保留此 div 样式的最简单方法是什么? (可能是视图状态?)

【问题讨论】:

  • 你应该检查 JS 函数而不是修复这个问题。
  • 尝试 jquery ajax 而不是整个页面回发。 ScriptManager 和 ajaxpanel 是 asp.net 组件
  • 您考虑过使用 UpdatePanels 吗?

标签: javascript asp.net viewstate


【解决方案1】:

您可以使用隐藏字段(控件)并在更改 div 的可见性时更新状态(例如 1 = 可见 0 = 隐藏)。接下来在加载页面事件中恢复状态。

更多或更少

aspx 文件:

  <input runat="server" type="hidden" class="stateDiv" id='stateDiv' />

js 文件或页面中:

$(function(){
 var visibility = $(".stateDiv").val();
 if(visibility== 1)
   $("#InsDetail").show()
 else
   $("#InsDetail").hide();

 $(your_botton).click(function(){
 //toggle div
  if ($("#InsDetail").is(":visible"))
     $(".stateDiv").val(1);
  else
    $(".stateDiv").val(0);
});

});

这样你也可以在服务器端控制状态

【讨论】:

    【解决方案2】:

    ASP.NET Webforms 中的常用方法(hack)是将动态客户端数据保存在 hidden 输入字段中,例如:

    <input type="hidden" id="persistedData" value="someValue" runat="server" />
    

    然后你就可以使用这些信息在服务器上正确设置样式,并在回发后正确渲染样式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      相关资源
      最近更新 更多