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 状态? 的相关文章

  • 如何修复 IE6 上的不透明度

    如何修复 IE6 上的不透明度 此代码不适用于 IE6 filter alpha opacity 50 moz opacity 0 5 khtml opacity 0 5 opacity 0 5 还有这段代码 description ani
  • 仅动态包含 javascript 文件一次

    我正在编写一个 javascript 函数 该函数用于包含外部 JS 文件 但仅一次 我需要这样一个函数的原因是 当通过 AJAX 加载某些内容时会调用它 并且我需要对该内容运行特定于页面的代码 不 只需使用 live不会覆盖它 这是我的尝
  • 获取自定义属性的值

    我有两个单选按钮 我希望能够获取选中的单选按钮的自定义属性 xml value 的值 我尝试过以下脚本 var userType input name ctrl CustomerType checked this attr xmlvalue
  • 存储在 Session 中的变量在整个页面生命周期中是否反序列化一次或多次?

    我想以类似的方式包装会话变量在 CodeProject 上讨论 http www codeproject com KB aspnet wrapthosesessionvariables aspx msg 2315287 public sta
  • 简单 AJAX Get 请求“待处理”

    我正在尝试实现一个简单的 AJAX GET 请求 该请求告诉服务器删除数据库中的文档 虽然我从服务器得到文档已删除的确认 但 Chrome 检查器显示该请求处于 待处理 状态 最终导致服务器错误 我做错了什么 HTML div class
  • 将删除和箭头键添加到正则表达式中

    我正在执行日期验证 现在我正在执行该用户只能输入numbers and backspace所以现在我想在正则表达式中添加 2 个键 我想添加delete and arrow keys那么我应该在正则表达式中做什么改变 这是我的代码
  • Chrome 浏览器不显示 HTTP 处理程序生成的图像

    基本上我有一个网站 可以呈现一些文档 主要是办公室 的 HTML 预览 生成的 HTML 片段包含在同一网站返回的页面中 但图像由 HTTP 处理程序从具有以下链接的另一个网站返回 img width 50 height 50 src ht
  • CSS、Javascript 和图像的长度为零

    我正在尝试将 ASP NET MVC 1 0 Visual Studio 2008 项目移植到 ASP NET MVC RC 2 Visual Studio 2010 该项目 并且一直 在 IIS 7 上运行 动态内容 由控制器提供的所有内
  • JQuery .hasClass 用于 if 语句中的多个值

    我有一个简单的 if 语句 if html hasClass m320 do stuff 这按预期工作 但是 我想添加更多的类if statement检查是否存在任何类标签 我需要它 所以它不是全部 而只是至少一个类的存在 但它可以更多 我
  • JQGrid - 在编辑表单中显示附加列

    我有一个 JQGrid 表 有 30 多个列 我认为这些列的内联编辑对用户来说并不友好 所以我想在网格模式下显示几列 并仅当用户打开该行的编辑表单时显示所有列 这可能吗 在教程中找不到这个 先感谢您 如果你想show并且不要编辑列 然后使用
  • 如何将对象数组传递给jade模板?

    我想将一组对象从 mongodb 传递到客户端 这是物体 var objeto img name name of the file image image jpg url title title of the image caption d
  • 仅单击 div 内部

    我正在为一个小网站制作教程 我只想让教程气泡可点击 因此 当我们尝试单击气泡之外的某些内容时 什么也不会发生 换句话说 我希望我的 html 不可点击 而 tutorial bubble 可点击 尝试这个 jQuery function h
  • 管理调试和发布连接字符串

    在 NET SQLServer 应用程序中管理调试和发布连接字符串的好方法是什么 我有两个 SQL Server 一个是生产服务器 一个是构建 调试服务器 我需要一种在部署 ASP NET 应用程序时在这两个服务器之间进行切换的方法 目前
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • jQuery - 系列之外的 HighCharts 标签(条形图)

    function container highcharts chart type bar backgroundColor null width 360 title text null style display none subtitle
  • 如何限制下拉列表更改而不禁用它

    如何在不禁用下拉列表的情况下限制下拉列表选项更改 意味着我无法更改选项 并且下拉列表不应该是只读的 我的问题是我的服务器没有读取禁用的元素 这是我的出价 http jsfiddle net m3v7y jQuery var lastSel
  • mozilla pdf.js 没有全视图

    我喜欢这个 pdf 查看器https github com mozilla pdf js https github com mozilla pdf js Demo http mozilla github com pdf js web vie
  • 如何使用 jQuery 或 JavaScript 聚焦 或 标签?

    for var i 0 i
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS

随机推荐

  • 将数据集导出到 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 显然将自身重置为初始状态 所以我的问题是 在回发之间