当用户在我的网站上选择一个标签时,我想存储它们所在的标签,以便我可以在页面刷新后将它们发回那里。我现在有这个(原因是编码错误,我正在测试这个概念):
$("#index_0_li").click(function() {
<%= Session["SelectedIndex"] = "0" %>
});
$("#index_1_li").click(function() {
<%= Session["SelectedIndex"] = "1" %>
});
var index = <%= Session["SelectedIndex"] %>;
问题是,因为<%= %>
不等待点击,所以索引始终设置为1.
有没有人对如何实现我想做的事情有任何想法?
感谢。
答案 0 :(得分:5)
只需使用客户端会话 - 又名“cookies”。
在点击事件上设置cookie,然后当您提交页面(或“回发”)时,此cookie将随HTTP请求一起发送,允许您通过Request.Cookies
阅读。
答案 1 :(得分:1)
正如El Ronnoco所说,如果你想在ASP.NET Session中选择选项卡,那么你需要将它发送回服务器。您可以通过AJAX调用执行此操作,也可以将其包含在您在应用程序中执行的其他帖子中。
但是,如果您只想维护客户端的选定选项卡,则可以按照RPM1984的建议进行操作,并将其存储在cookie(或其他本地存储,如果允许HTML5)中,并选择最后一次记录在cookie /中的选项卡加载页面时的本地存储。以下是我的头脑,所以可能有语法错误(我需要看你的标签和其他标记来做一个有效的解决方案):
$("#index_0_li").click(function() {
localStorage.setItem('SelectedTab', '#index_0_li');
});
$("#index_1_li").click(function() {
localStorage.setItem('SelectedTab', '#index_1_li');
});
$(document).ready(function() {
var index = localStorage.getItem('SelectedTab');
if (index !== null) {
$(index).click();
}
});
答案 2 :(得分:0)
点击功能是客户端javascript。 您无法在客户端上设置服务器端变量。 您应该设置selectedindex服务器端,例如使用jquery post。