我有一个将EnableHistory设置为“True”的ScriptManager。我使用AddHistoryPoint方法为页面上的某些过滤器保存过滤器术语。
例如:
this.ScriptManager.AddHistoryPoint("filterterm", "somevalue");
因此浏览器中的地址栏显示类似
的内容.../mypage.aspx?id=1#&&filterterm=somevalue
它完美无缺,除非我删除所有过滤器,因此我需要保存没有键的历史记录点(换句话说,使用string.Empty键)
发生这种情况时,浏览器中的地址栏会显示:
.../mypage.aspx?id=1#
注意空锚。它使页面的滚动位置重置为顶部。这非常烦人。
你知道解决这个问题的方法吗?
答案 0 :(得分:0)
目前我使用的不是最好的解决方案,但至少它可行。我添加了一个虚拟参数,在添加过滤条件时添加该参数。当删除所有过滤条件时,虚拟参数将保留在URL中,因此滚动位置不会被重置。
this.ScriptManager.AddHistoryPoint("filter", "1");
注意:解析参数时,应忽略哑参数。