我有一个ASP.NET 4.0网站。在该站点中,UpdatePanel中有一个treeview控件。ASP.NET 4.0,ScriptManager和HistoryPoints
请记住 - 当用户第一次访问该页面时,没有发生回发(更多在这一分钟内)。
当用户点击树中的节点时,它会触发回发。当用户在树上移动时,我可以设置历史积分 - 这不是什么大问题。历史点是所选节点的ID。 (我想用这个来驱动页面上的其他信息)
有两种行为,我看到了,我很为难至于如何纠正这些:
- 首先,历史点似乎总是指向当前项目。如果我从项目A开始,然后单击项目B,当我点击后退按钮时,我在项目B处结束几次点击(就好像历史点都设置为相同的值)。我认为历史应该是用户点击的节点的运行列表......但在这种情况下,似乎列表始终是包含当前ID的历史点的集合。 (如果有人知道如何在脚本管理器中公开历史点的集合,我很想听听它是如何做到的)
- 其次,还有更令人头疼的是,当树最初加载时,没有回传。有没有办法设置没有Ajax回发的历史点? (我想有一种方法来保存树的默认状态,但现在从根目录转到项目A,然后点击返回会将用户转到我打开页面之前的任何页面)
有没有其他人注意到ScriptManager的历史点怪异的行为?
我也想过替代方案 - 比如viewstate,隐藏字段,cookie,会话变量......但是我没有碰到任何我尝试过的解决方案。有没有办法让后退按钮工作没有的历史点? (我认为不存在)