2

我有一个 EnableHistory 设置为“True”的 ScriptManager。我使用 AddHistoryPoint 方法为页面上的某些过滤器保存过滤器术语。

例如:

this.ScriptManager.AddHistoryPoint("filterterm", "somevalue");

所以浏览器中的地址栏显示类似

.../mypage.aspx?id=1#&&filterterm=somevalue

它工作得很好,除非我删除所有过滤器,所以我需要在没有键的情况下保存历史记录点(换句话说,使用 string.Empty 键)

发生这种情况时,浏览器中的地址栏会显示:

.../mypage.aspx?id=1#

注意空锚。它使页面的滚动位置重置到顶部。这很烦人。

你知道解决这个问题的任何方法吗?

4

1 回答 1

0

目前我使用的不是最好的解决方案,但至少它有效。我添加了一个虚拟参数,它是在添加过滤条件时添加的。并且当所有过滤条件都被删除时,虚拟参数将留在 URL 中,因此滚动位置不会被重置。

this.ScriptManager.AddHistoryPoint("filter", "1");

注意:解析参数器时应忽略虚拟参数。

于 2012-11-28T14:23:43.167 回答