asp.net webforms 和 jquery:如何在回发之间保存/恢复 jquery 状态?

2024-04-01

我正在构建一个 asp.net webforms (3.5 sp1) 应用程序,使用 jquery 可以对 UI 进行动画处理,更改其状态。在我开始进行回发之前,它一直工作得很好,其中 UI 显然将自身重置为初始状态。

所以我的问题是,在回发之间保存和恢复 jquery/UI 状态的最佳实践是什么?

谢谢,埃吉尔。

Update:非常感谢大家,很好的意见,可惜我无法将多个答案标记为“答案”。


我通常通过 AJAX 将菜单状态或过滤器(div 中的一组输入)可见性等内容存储在会话中的服务器端。当菜单展开或显示过滤器时,单击处理程序将向 Web 服务触发 AJAX 事件,该事件将记录用户会话中菜单或过滤器可见性的状态。在回发时,我使用与每个菜单/过滤器对应的会话变量通过 CSS 设置其初始状态。我发现这是更好的用户体验,因为页面没有flash如果您在客户端进行更改,则加载后由 javascript 更新它。

示例——因为我正在路上,所以这不是项目中的实际代码,并且可能不完整。使用 jQuery。 Web 服务的 Url 将取决于您实现 Web 服务的方式。我(主要)使用 ASP.NET MVC,所以我的将是一个控制器操作。

<script type='text/javascript'>
    $(document).ready( function() {
       $('#searchFilter').click( function()  {
           var filter = $(this);
           var filterName = filter.attr('id');
           var nowVisible = filter.css('display') === 'none';
           if (nowVisible) {
              filter.show();
           }
           else {
              filter.hide();
           }
           $.post('/controller/SetFilterVisibility',
                  { name: filterName, visibility: nowVisible } );
       });
    });
</script>


<div id='searchFilter' <%= ViewData["searchFilterVisibility"] %> >
    ...
</div>

服务器端代码

[AcceptVerbs( HttpVerbs.POST )]
[Authorization]
public ActionResult SetFilterVisibility( string name, bool visible )
{
    Session[name] = visible;
    return Content( string.Empty );  // not used... 
}

[AcceptVerbs( HttpVerbs.GET )]
[Authorization]
public ActionResult SomeAction( int id )
{
    ...
    ViewData["searchFilterVisibility"] = Session["searchFilter"];
    ...
    return View();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

asp.net webforms 和 jquery:如何在回发之间保存/恢复 jquery 状态? 的相关文章

随机推荐

  • 将数据集导出到 Excel 并从 asp.net Web 方法引发文件下载对话框

    我使用以下代码将数据集导出到 Excel 工作表 WebMethod public static void ExporttoExcel DataSet ds productfactory pf new productfactory ds p
  • 安装卷时,docker 映像内的文件消失

    docker 镜像内部有几个文件 tmp目录 Example tmp ls al total 4684 drwxrwxrwt 1 root root 4096 May 19 07 09 drwxr xr x 1 root root 4096
  • 我可以从数据源导入 INTO excel 而无需迭代吗?

    目前我有一个应用程序 它从 SQLite 数据库获取信息并将其放入 Excel 但是 我必须获取每个 DataRow 迭代每个项目 并将每个值放入其自己的单元格中并确定突出显示 这导致将 9000 条记录文件导出到 Excel 需要 20
  • Overpass API Android 示例?

    为了进行研究 我们必须开发一款基于位置的 Android 游戏 目前我们使用OSMDroid来显示地图 玩家必须收集资源 如木材 石头 这些资源当前以硬编码的经 纬度存储在我们的后端 并将通过 setMarker 添加到当前地图上 为了在全
  • 无法在“[email protected]”中导入“getReactNativePersistence”

    我无法导入getReactNativePersistence模块从firebase auth 我正在使用打字稿 可以导入下面的函数 但是当我从以下位置更新 Firebase SDK 时它不起作用9 22 0 to 10 1 0 import
  • Google Analytics 上的多域设置

    我们有十几个网站 以及偶尔的子域 因此 example com example co uk us example com ETC 我们一直在为每个站点使用单独的 GA 代码 这工作正常 但这意味着添加新网站意味着获得新代码 并且我们无法得知
  • jquery - 根据条件删除类

    我每 1 分钟轮询一次 json 响应 并根据响应在页面上添加或删除覆盖 我的反应大多数时候都是积极的 在这种情况下 我应该删除覆盖类 在下面的代码中 else 部分每次都会执行 remove class 和 hide 函数每次都会执行 有
  • image.onError 事件永远不会触发,但图像不是有效数据 - 需要解决方法

    我正在尝试使用 JavaScript 将图像附加到页面 image document createElement img image onload function document body appendChild image image
  • 如何避免在二进制文件上以纯文本形式显示字符数组

    所以 我一直在开发一个代码 如果有人运行一个代码 一些信息不应该轻易找到strings针对二进制文件的命令即 strings a out 如果我尝试使用以下内容 char array1 d d d d 0 那么它工作得很好 如果我对二进制文
  • 在R中导入SAS cport文件

    我试图通过一些分析找出一种在 R 中导入 SAS cport 文件的方法 有人可以帮助我如何完成这项工作吗 我不想先使用 SAS 将其转换为 csv 然后再导入到 R 中 我尝试用谷歌搜索但无法找到合适的解决方案 Thanks None
  • 使用 Swagger/OpenAPI 鉴别器,以便 Jackson 正确序列化对象

    我们在使用 OpenAPI 2 0 鉴别器时遇到了麻烦 无法让 Swagger 工具和 Jackson 序列化器都满意 问题 在序列化过程中 Jackson 当前为鉴别器生成两个 JSON 属性 其中之一具有null value OpenA
  • PHP If/Else 参数和 PDO 对象

    我怎样才能用下面的 if else 来论证 我想将变量 condition 定义为表 A 和表 B 的交集 最终 如果该条件为真 则执行一些代码 这是我的 PHP 我试图匹配 table1 field1 和 table2 field1 如果
  • 如何在 Airflow 中安装软件包?

    我在 Airflow 在 GCP 上 部署了一个 dag 但收到错误 没有名为 scipy 的模块 如何在 Airflow 中安装软件包 我尝试添加一个单独的 DAG 来运行 def pip install package subproce
  • 统一码正则表达式;无效的 XML 字符

    有效的 XML 字符列表是众所周知的 正如规范所定义的 x9 xA xD x20 xD7FF xE000 xFFFD x10000 x10FFFF 我的问题是是否可以通过使用 Unicode 通用类别来为此 或其逆 创建 PCRE 正则表达
  • 让mysql忽略where条件

    如果未设置变量 是否可以使 mysql 忽略条件 例如 SELECT FROM foo WHERE id id AND bar baz 如果 baz 设置为正常运行查询 否则运行减去 AND 子句的查询 Thanks SELECT FROM
  • 将数据分割或子集为 30 分钟的间隔

    我有以下形式的数据框 Temp Depth Light x time date time at depth 104 18 59 2 7 27 21 38 2012 06 20 4 109 18 59 2 7 27 22 02 2012 06
  • 如何使用google api抓取数据

    import requests def search query pages 4 rsz 8 url https ajax googleapis com ajax services search web params v 1 0 Versi
  • 如何使用php下载rar文件

    我编写了下载 rar 文件的代码 它工作正常 但是 name file rar data file get contents file rar fh fopen name w or die can t open file fwrite fh
  • 从 Materialise CSS 芯片获取数据

    我需要从 Materialise CSS 获取数据chips https materializecss com chips html 但我不知道 如何 chips placeholder material chip placeholder
  • asp.net webforms 和 jquery:如何在回发之间保存/恢复 jquery 状态?

    我正在构建一个 asp net webforms 3 5 sp1 应用程序 使用 jquery 可以对 UI 进行动画处理 更改其状态 在我开始进行回发之前 它一直工作得很好 其中 UI 显然将自身重置为初始状态 所以我的问题是 在回发之间