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 に答える