gpt4 book ai didi

asp.net webforms 和 jquery : How to save/restore jquery state between postbacks?

转载 作者:行者123 更新时间:2023-11-30 23:51:03 26 4
gpt4 key购买 nike

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

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

谢谢,埃吉尔。

更新:非常感谢大家,非常好的意见,但糟糕的是我无法将多个答案标记为“答案”。

最佳答案

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

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

<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();
}

关于asp.net webforms 和 jquery : How to save/restore jquery state between postbacks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/500728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com