【发布时间】:2010-07-13 11:12:10
【问题描述】:
我遇到了一个问题,希望有人能提供帮助。我正在构建一个 .NET/C# Web 应用程序,其中有一个选项卡式面板布局,当用户单击每个选项卡时,显示面板会使用 javascript 更新以隐藏和显示一些 div。这些点击都不会导致回发,都是客户端,所以我不能使用视图状态或会话。
我想要做的是以某种方式记住刷新页面时哪个面板最后可见,但没有发回服务器我不确定如何执行此操作。我尝试了一个隐藏字段,但显然它的值每次都会重置,因为表单从未提交过。我确实知道我可以使用 cookie 来实现这一点,但是对于这样一个(看似)微不足道的操作来实现它有点烦人......但也许这是唯一的方法?
有没有人有更优雅的解决这个问题的方法?
使用这样的函数来显示和隐藏标签):
function makeCurrent(tab) {
if (tab.title == 'Manage orders') {
document.getElementById('panelOrders').style.display = "block";
// Hide others
document.getElementById('panelAccounts').style.display = "none";
document.getElementById('panelProducts').style.display = "none";
document.getElementById('panelSettings').style.display = "none";
// Remember last viewed panel
document.getElementById('hdnCurrentlyViewing').value = "orders";
}
面板只是带有 style.display 控制其可见性的 div。不确定发布 HTML 代码是否有用,因为它相当不言自明......?
【问题讨论】:
-
没有 ajax,希望避免这种情况,但显然我不能......
-
如果您只能假设最新的浏览器,那么您可以使用 HTML5 网络存储 API 在浏览器上保存会话信息。
标签: c# .net javascript