ScriptManager.AddHistoryPoint - 页面首先显示原始页面状态,然后保存状态

时间:2010-02-11 00:04:51

标签: c# asp.net updatepanel scriptmanager

我正在使用UpdatePanelScriptManager的{​​{1}}方法将我的页面状态保存在浏览器的历史记录中。该页面是一个简单的搜索/结果页面,包含2个状态:

  • 状态1 - 显示搜索过滤器
  • 状态2 - 显示搜索结果

当我导航回页面时(通过单击浏览器中的后退按钮),页面显示初始状态(状态1),但随后更新面板回发,页面翻转到搜索结果(状态2)

这看起来不整洁,感觉我在实施中遗漏了一些东西。如何告诉页面只加载已保存的状态,或者在加载已保存的状态之前隐藏页面内容?

1 个答案:

答案 0 :(得分:0)

正如我在ScriptManager事件OnNavigateHistory中所知道的那样你必须在那里处理那个例子你为状态一和两个相同的密钥ID添加HistoryPoint只有值不同而且你的OnNavigateHistory基于e.State [“YourKey”]你决定哪个状态留下来。 例子

string indexString = e.State["YourKey"]; 
    if (String.IsNullOrEmpty(indexString)) { 
         SetToStateOne();
    }
    else { 
        int index = int.Parse(indexString); 
        SetToStateTwo();
    }

抱歉我的英文不好